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?
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.
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.
来源:https://stackoverflow.com/questions/3452046/get-error-code-from-within-a-batch-file