IF ERRORLEVEL ...
- это специальный синтаксис, поддерживаемый со времен DOS, в WinNT была добавлена поддержка переменных %ERRORLEVEL%
.
Исходный синтаксис используется следующим образом:
call someapp.exe
if errorlevel 1 goto handleerror1orhigher
echo succuess...
Чтобы использовать переменную, используйте обычный синтаксис IF: if %errorlevel%==0 echo success...
Обратите внимание, что %errorlevel%
перестает работать, если кто-то выполняет set errorlevel=foo
, и он может не обновляться для внутренних команд cmd.exe.
Альтернативное решение заключается в использовании &&
:
call someapp.exe && (echo success) || (echo error!)
Есть (по крайней мере) два известных случая, когда уровень ошибки нарушен, и вы должны использовать ||
вместо: