Надежный способ проверки ненулевого (ошибочного) кода возврата в командном файле Windows
Существует множество советов по работе с кодами возврата в пакетных файлах (с использованием механизма ERROLEVEL), например,
Get error code from within a batch file ERRORLEVEL inside IFНекоторый совет должен сделатьif errorlevel 1 goto somethingbad
в то время как другие рекомендуют использовать
%ERRORLEVEL%
переменная и использование==
, EQU
, LSS
и т. д. Похоже, что проблемы внутриIF
заявления и тому подобное, так что тогда задержка расширения поощряется, но, похоже, она имеет свои причуды.
Что является надежным (то есть надежным, так что он будет работать практически на любой системе с почти любым кодом возврата), чтобы узнать, если это плохо (nonzero) код был возвращен?
My attemptДля базового использования следующее, кажется, работает нормально, чтобы поймать любой ненулевой код возврата:
if not errorlevel 0 (
echo error level was nonzero
)