I have two batch files, task.bat
and runtask.bat
. The runtask.bat
calls task.bat
and I would like runtask.bat
to get the exit code of task.bat
into a variable. How could this be done?
task.bat:
@echo off
set errorlevel=1
runtask.bat
...
CMD /C task.bat
set taskexitcode=????
Just swap CMD /C
for call
.
task.bat:
@echo off
set errorlevel=15
runtask.bat
call task.bat
set taskexitcode=%errorlevel%
echo %taskexitcode%
Output
15
The accepted answer is correct, but if you are using call
to call another batch script, and that second batch script is using SetLocal
, you may need to use a parsing trick to accomplish this. If you are running into this, add the following code before your exit b
:
ENDLOCAL&set myvariable=%myvariable%
Now the value of myvariable
is made available to the calling context and you can see the value in the other script.
References:
https://stackoverflow.com/a/16167938/89590
http://www.borngeek.com/2008/05/22/exiting-batch-file-contexts/
来源:https://stackoverflow.com/questions/14277566/how-can-one-batch-file-get-the-exit-code-of-another