a.polyakov
11-05-2023, 19:44
Добрый день.
Не могу понять, почему не работает обнуление errorlevel в операторе if.
Такая конструкция, например (часть кода):
reg query "%regpath%" /v %prmtr1% 1>NUL 2>NUL
if %ERRORLEVEL% EQU 0 (
goto error
) else (
cd .
echo %ERRORLEVEL%
reg query "%regpath%" /v %prmtr2%
if %ERRORLEVEL% EQU 0 (goto error)
)
Вместо "cd ." можно любые предлагаемые аналоги (ver > nul и подобные)
Все это работает, находясь в основном условии IF, но абсолютно не работает, используемое в else, errorlevel подхватывается от "родителя" и не сбрасывается никаким образом.
Не могу понять, почему не работает обнуление errorlevel в операторе if.
Такая конструкция, например (часть кода):
reg query "%regpath%" /v %prmtr1% 1>NUL 2>NUL
if %ERRORLEVEL% EQU 0 (
goto error
) else (
cd .
echo %ERRORLEVEL%
reg query "%regpath%" /v %prmtr2%
if %ERRORLEVEL% EQU 0 (goto error)
)
Вместо "cd ." можно любые предлагаемые аналоги (ver > nul и подобные)
Все это работает, находясь в основном условии IF, но абсолютно не работает, используемое в else, errorlevel подхватывается от "родителя" и не сбрасывается никаким образом.