一个批处理文件如何获取另一个批处理文件的退出代码?

问题描述 投票:8回答:3

我有两个批处理文件,task.batruntask.batruntask.bat调用task.bat,我希望runtask.battask.bat的退出代码转换为变量。如何做到这一点?

task.bat:

@echo off
set errorlevel=1

runtask.bat

...
CMD /C task.bat
set taskexitcode=????
batch-file windows-xp
3个回答
10
投票

只需将CMD /C换成call

task.bat:]

@echo off
set errorlevel=15

runtask.bat

call task.bat
set taskexitcode=%errorlevel%
echo %taskexitcode%

[输出] >>

15

0
投票

接受的答案是正确的,但是如果您正在使用call调用另一个批处理脚本,而第二个批处理脚本正在使用SetLocal,则可能需要使用解析技巧来完成此操作。如果遇到此问题,请在exit b之前添加以下代码:


0
投票

我在Teamcity管道中有一个批处理脚本,并且在其子脚本以代码1退出后没有退出。

© www.soinside.com 2019 - 2024. All rights reserved.