Get error code from within a batch file
You can also use conditional processing symbols to do a simple success/failure check. For example:
myProgram.exe && echo Done!
would print Done!
only if myProgram.exe
returned with error level 0.
myProgram.exe || PAUSE
would cause the batch file to pause if myProgram.exe returns a non-zero error level.
Sounds like you'll want the "If Errorlevel" command. Assuming your executable returns a non-0 exit code on failure, you do something like:
myProgram.exe
if errorlevel 1 goto somethingbad
echo Success!
exit
:somethingbad
echo Something Bad Happened.
Errorlevel checking is done as a greater-or-equal check, so any non-0 exit value will trigger the jump. Therefore, if you need to check for more than one specific exit value, you should check for the highest one first.
A solution better than Hellion's answer is checking the %ERRORLEVEL%
environment variable:
IF %ERRORLEVEL% NEQ 0 (
REM do something here to address the error
)
It executes the IF
body, if the return code is anything other than zero, not just values greater than zero.
The command IF ERRORLEVEL 1 ...
misses the negative return values. Some progrmas may also use negative values to indicate error.
BTW, I love Cheran's answer (using &&
and ||
operators), and recommend that to all.
For more information about the topic, read this article