11

2 つのバッチ ファイルtask.batruntask.bat. runtask.bat呼び出しと終了コードを変数に取得しtask.batたいと思います。これはどのように行うことができますか?runtask.battask.bat

task.bat:

@echo off
set errorlevel=1

runtask.bat

...
CMD /C task.bat
set taskexitcode=????
4

3 に答える 3

13

と交換するだけCMD /Cですcall

task.bat:

@echo off
set errorlevel=15

runtask.bat

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

出力

15
于 2013-01-11T13:19:14.010 に答える
1

受け入れられた答えは正しいですが、call別のバッチ スクリプトを呼び出すために を使用していて、その 2 番目のバッチ スクリプトが を使用し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/

于 2014-04-29T00:31:25.633 に答える