• ベストアンサー

MS-DOSバッチファイルで、子バッチのレスポンスコードを親バッチで取得する方法

MS-DOSバッチファイルで、 バッチファイル(親)からバッチファイル(子)を起動する処理を作成しています。 子バッチが以上終了した際のレスポンスコードを 親バッチで取得する方法がありましたら教えて下さい。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.1

子バッチで環境変数をセットすると、親バッチで参照できます。  set STAT=1  処理    set STAT=0 親バッチで %STAT% を参照し 0 なら正常終了ということになります。

shocQ
質問者

補足

回答ありがとうございます。 すみません。補足です。 さきほどの質問の表現に誤りがありました。 子バッチのレスポンスコードを、親バッチのレスポンスコード として反映する方法がありましたら、お教えください。

その他の回答 (1)

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.2

>子バッチのレスポンスコードを、親バッチのレスポンスコードとして反映する方法 親バッチのレスポンスコードは何が受け取るんでしょう? 子バッチのレスポンスコードを親バッチが受け取るということとして解釈します。 親バッチを、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 を判定して環境変数にセットして親に返すしかないと考えます。

shocQ
質問者

お礼

早速の回答ありがとうございました。大変助かりました。

関連するQ&A