2 つのバッチ ファイル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=????
2 つのバッチ ファイル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
別のバッチ スクリプトを呼び出すために を使用していて、その 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/