IF ERRORLEVEL ...
is a special syntax supported since the DOS days, the %ERRORLEVEL%
variable support was added in WinNT.
The original syntax is used like this:
call someapp.exe
if errorlevel 1 goto handleerror1orhigher
echo succuess...
To use the variable, use the normal IF syntax: if %errorlevel%==0 echo success...
Note that %errorlevel%
stops working if someone does set errorlevel=foo
and it might not get updated for internal cmd.exe commands.
An alternative solution is to use &&
:
call someapp.exe && (echo success) || (echo error!)
There are (at least) two known cases where errorlevel is broken and you must use ||
instead:
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…