I am trying to run a batch file with start /high
and still get the return/exit code, ie %ERRORLEVEL%
. The problem seems to be that command START does not return the exit code that the batch file returns.
We have a simple batch file for testing named BatFileThatReturnsOne.bat
.
The contents of BatFileThatReturnsOne.bat
are
EXIT /B 1
We are calling this as such:
start /high /wait BatFileThatReturnsOne.bat
But no matter what the batch file returns, the execution of start
never has a %ERRORLEVEL%
of anything other than 0 (zero).
This is all actually called by cfn-init in CloudFormation, but that is probably not relevant because we can reproduce it from a command line window.
The actual call is:
cmd.exe /C start /high /wait BatFileThatReturnsOne.bat
How do I get start
to set the %ERRORLEVEL%
to something other than 0 (zero)?
directly from a cmd
window or a batch file you can use
start /high /wait cmd /c BatFileThatReturnsOne.bat
but if you need to start the cmd
instance to execute the start command that launchs the batch file then you can use
cmd /v /e /c" start /high /wait cmd /c launched.cmd & exit ^!errorlevel^!"
Just change EXIT /B 1
by EXIT 1
.
As explained in the Table 4 given in this answer about START /WAIT bat
command:
When the started Batch file ends, set ERRORLEVEL = value from 'EXIT number' commmand.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.