我有兩個批處理文件,task.bat
和runtask.bat
。 runtask.bat
調用task.bat
,我希望runtask.bat
將task.bat
的退出代碼變爲變量。這怎麼能做到?一個批處理文件如何獲取另一個批處理文件的退出代碼?
task.bat:
@echo off
set errorlevel=1
runtask.bat
...
CMD /C task.bat
set taskexitcode=????
我有兩個批處理文件,task.bat
和runtask.bat
。 runtask.bat
調用task.bat
,我希望runtask.bat
將task.bat
的退出代碼變爲變量。這怎麼能做到?一個批處理文件如何獲取另一個批處理文件的退出代碼?
task.bat:
@echo off
set errorlevel=1
runtask.bat
...
CMD /C task.bat
set taskexitcode=????
只是交換CMD /C
爲call
。
task.bat:
@echo off
set errorlevel=15
runtask.bat
call task.bat
set taskexitcode=%errorlevel%
echo %taskexitcode%
輸出
15
接受的答案是正確的,但如果你正在使用call
調用另一個批處理腳本,而第二批腳本使用SetLocal
,您可能需要使用解析技巧來做到這一點。如果你正在運行到這一點,你exit b
前添加以下代碼:
ENDLOCAL&set myvariable=%myvariable%
現在是提供給調用上下文的myvariable
值,你可以看到在其他腳本中的價值。
參考文獻:
https://stackoverflow.com/a/16167938/89590
http://www.borngeek.com/2008/05/22/exiting-batch-file-contexts/
工作就像一個魅力,謝謝。它還允許在'task.bat'中設置變量並讀入'runtask.bat'。非常感謝! – James
太好了,別擔心。我實際上並不知道變量,不錯:) –
exit命令有一個'/ B'開關,用於設置批處理腳本的退出代碼。 –