- ベストアンサー
MS-DOSバッチファイルで、子バッチのレスポンスコードを親バッチで取得する方法
MS-DOSバッチファイルで、 バッチファイル(親)からバッチファイル(子)を起動する処理を作成しています。 子バッチが以上終了した際のレスポンスコードを 親バッチで取得する方法がありましたら教えて下さい。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
子バッチで環境変数をセットすると、親バッチで参照できます。 set STAT=1 処理 set STAT=0 親バッチで %STAT% を参照し 0 なら正常終了ということになります。
その他の回答 (1)
- MovingWalk
- ベストアンサー率43% (2233/5098)
>子バッチのレスポンスコードを、親バッチのレスポンスコードとして反映する方法 親バッチのレスポンスコードは何が受け取るんでしょう? 子バッチのレスポンスコードを親バッチが受け取るということとして解釈します。 親バッチを、oya.bat バッチをko.batとしていくつかテストしてみましたが、 環境変数での受け渡し以外はできないという結論です。 ko.batでは、 ・oya.bat から直接起動(ko.bat)でも、CALL(CALL ko.bat)でも EXITを実行すると、COMMANDO.COMを終了します。 ・COMMAND /c ko.bat として呼び出すとoya.batに戻りますが、EXITコードは無効になります。 ・したがって、BATでは *.COM や *.EXE の終了コードは、errorlevel で検査できますが、 *.batの終了コードは取得できないという結論です。 これを解決するためには、#1で書いた方法を拡張して、ko.batにて起動したプログラムの errorlevel を判定して環境変数にセットして親に返すしかないと考えます。
お礼
早速の回答ありがとうございました。大変助かりました。
補足
回答ありがとうございます。 すみません。補足です。 さきほどの質問の表現に誤りがありました。 子バッチのレスポンスコードを、親バッチのレスポンスコード として反映する方法がありましたら、お教えください。