Get error code from within a batch file

2019-01-17 20:15发布

问题:

I have a batch file that runs a couple executables, and I want it to exit on success, but stop if the exit code <> 0. How do I do this?

回答1:

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.



回答2:

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.