Ошибка блока if ... else

Кирилл

Команда форума
Администратор
Сообщения
14,216
Реакции
6,246
Баллы
1,093
Привет народ!

Что то упускаю,не подскажете?

CMD/BATCH:
reg add hkcr\test.associatoon /f
IF %ERRORLEVEL% LEQ 0 (
        REG DELETE hkcr\test.associatoon /f
        echo. >%windir%\Logs\CBS\sfcheker.log
        echo ::::::::  %Userprofile%  :::::::: >>%windir%\Logs\CBS\sfcheker.log
        echo ::::::::  %DATE%  :::::::: >>%windir%\Logs\CBS\sfcheker.log
        echo ::::::::  %VERSION%  :::::::: >>%windir%\Logs\CBS\sfcheker.log
        echo. >>%windir%\Logs\CBS\sfcheker.log
        echo. >>%windir%\Logs\CBS\sfcheker.log
        echo ::::::::::::::::::::::::::::::::::::::::::::::::::::: >>%windir%\Logs\CBS\sfcheker.log
        echo. >>%windir%\Logs\CBS\sfcheker.log
        echo ... Права Администратора получены...  >> %windir%\Logs\CBS\sfcheker.log
            echo elevate good
            Exit /b    ) else (
            Echo Требуются права Администратора.
        Echo.
        echo Необходимо запустить скрипт от имени Администратора
        echo ^(^Правой кнопкой мыши по файлу - пункт запустить от имени Администратора^)^
        echo.
        echo Для выхода нажмите клавишу ENTER
        pause>nul
        echo tut
        GOTO Exite )

Проблема в том что если errolevel = 0 то первая часть выполняется,но на else не останвливается а переходит к
CMD/BATCH:
echo Для выхода нажмите клавишу ENTER
        pause>nul
        echo tut
        GOTO Exite
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,600
Реакции
6,037
Баллы
808
Зачем тебе LEQ (<=) ? Обычно проверяют на неравенство нулю (NEQ).

Помести %windir%\Logs\CBS\sfcheker.log в переменную.
Код станет на много короче.
Ты делаешь запись в реестр ради проверки прав? Это неправильно.
Используй команду, которая не запускается без привилегий, например net session.
+ Сделай через подпрограмму:


CMD/BATCH:
@echo off
set log=%windir%\Logs\CBS\sfcheker.log
call :CheckAdmin
goto :eof

:CheckAdmin
net session >NUL 2>NUL && (
    >> "%log%" (
    echo.
    echo ::::::::  %Userprofile%  ::::::::
    echo ::::::::  %DATE%  ::::::::
    echo ::::::::  %VERSION%  ::::::::
    echo.
    echo.
    echo :::::::::::::::::::::::::::::::::::::::::::::::::::::
    echo.
    echo ... Права Администратора получены...
    echo elevate good
    )
) || (
    Echo Требуются права Администратора.
    Echo.
    echo Необходимо запустить скрипт от имени Администратора
    echo ^(Правой кнопкой мыши по файлу - пункт "Запустить от имени Администратора"^)
    echo.
    echo Для выхода нажмите клавишу ENTER
    pause>nul
)
exit /B
 

Кирилл

Команда форума
Администратор
Сообщения
14,216
Реакции
6,246
Баллы
1,093
Ага.
Ты делаешь запись в реестр ради проверки прав? Это неправильно.
Используй команду, которая не запускается без привилегий, например net session.
+ Сделай через подпрограмму:
так работает,использовал dism так как он и так активно присутствует в новой версии.
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,600
Реакции
6,037
Баллы
808
Для чего использовал?
 

Кирилл

Команда форума
Администратор
Сообщения
14,216
Реакции
6,246
Баллы
1,093
Готовлю обновление sfcheker ,решил кое что поменять,разбавить системное логирование,добавить пару новшеств,кумекаю как вывести отчет для хр... в общем занятное дело... с разрабом что ты говорил связался но пока ноль ответов.
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,600
Реакции
6,037
Баллы
808
Заметил, что он берет для парсинга не только SFC.log ?
Не планируешь ли что-нибудь похожее для облегчения разбора?
 

Кирилл

Команда форума
Администратор
Сообщения
14,216
Реакции
6,246
Баллы
1,093
Не планируешь ли что-нибудь похожее для облегчения разбора?
да ,лог уже будет более читабелен+отдельный парсер логирования системы и cbs

Обычно проверяют на неравенство нулю (NEQ).
не поверишь - столько головы сломал а справка брешет...вместо этой команды восьмерка кушает EQU
 

Кирилл

Команда форума
Администратор
Сообщения
14,216
Реакции
6,246
Баллы
1,093
да,я про эту справку.
ос вин 8.1
думал я совсем отупел,а там вон оно как...
 
Сверху Снизу