バッチファイル(DOS)上でプログラムの戻り値を取得

今日のお題「バッチファイル(Windows MSDOS)上でプログラムの戻り値を取得するにはどうすればいいのか」

例えばバッチファイル内で「call Hoge.exe」としたときに、どうやって戻り値を得るか。です。

答え

  • %ERRORLEVEL%
  • プログラムのエントリポイント関数の戻り値をvoid以外に変更
  • プログラムのエントリポイントでreturn

会社で同僚が俺のプログラムをbatで実行しようとして、

「戻り値で処理分けたいんだけど、できない・・・」

と言っていたので調べてみました。

結論は上記のとおり。

ERRORLEVELに戻り値が入る。

VC#.netでコンソールアプリとか作ると

デフォルトはpublic static void Mainなので、そもそも戻り値がない。

調べたら案の定、ここを変える必要があるみたいで

public static int Mainにしたら上手く行きました。

バッチファイルを作成して何かする・・・ということは結構多いので、これはなんとか記憶しておきたいです。