私は2つのバッチファイル、task.bat
とruntask.bat
を持っています。 runtask.bat
はtask.bat
を呼び出し、runtask.bat
にはtask.bat
の終了コードを変数に入力します。これはどうすればできますか?1つのバッチファイルで別のバッチファイルの終了コードを取得するにはどうすればよいですか?
task.bat:
...
CMD /C task.bat
set taskexitcode=????
私は2つのバッチファイル、task.bat
とruntask.bat
を持っています。 runtask.bat
はtask.bat
を呼び出し、runtask.bat
にはtask.bat
の終了コードを変数に入力します。これはどうすればできますか?1つのバッチファイルで別のバッチファイルの終了コードを取得するにはどうすればよいですか?
task.bat:
...
CMD /C task.bat
set taskexitcode=????
runtask.bat
@echo off
set errorlevel=1
ただcall
ためCMD /C
を交換します。
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'スイッチがあります。 –