やりたいこと検索

呼び出したバッチファイルやサブルーチンで戻り値を取得する

 

目次

その他の関連しそうな記事

 

「exit /b」で変数「errorlevel」に値を入れて返す

バッチファイルやサブルーチン内でメインプログラムへ戻るときのコマンドとして、

があります。(※バッチファイルやサブルーチンを呼び出す方法は「call(バッチファイルやサブルーチンの呼び出し) -コマンド別解説-」や「バッチファイルでサブルーチンを使用する -やりたいこと検索-」をご覧下さい。)

 

「exit /b」の後に数字を指定することで、変数「errorlevel」に値を代入し戻り値として利用することができます。

以下、サブルーチンから変数「errorlevel」に値を入れてメインプログラムへ戻り値を返すバッチファイルの例(get_errorlevel.bat)です。

4行目でサブルーチンを呼び出しています。10行目からが呼び出されるサブルーチンの内容ですが、最後の行で「exit /d 1」として、戻り値として「1」を変数「errorlevel」に代入しています。

以下、実行結果です。

呼び出したバッチファイルやサブルーチンで戻り値を取得する サブルーチンから戻り値を取得する

5行目の「echo」コマンドで変数「errorlevel」の中身が表示されていますが、最終行で指定した「1」が格納されていることが分かります。

 

もう一つ、サブルーチンに引数を受け渡した値で変数「errorlevel」の値を設定するバッチファイル例(get_errorlevel_if.bat)を示します。

4行目では、引数を指定してサブルーチンを呼び出しています。

サブルーチン内では、引数に応じた値を変数「errorlevel」に代入し、メインプログラムへ戻します(19行目~23行目)。また、サブルーチンからの戻り値に応じて、「if」コマンドによる条件分岐を行っています(7行目~11行目)。

「if」文については、「if(条件分岐) -コマンド別解説-」で詳しく解説しています。

 

以下、実行結果です。

呼び出したバッチファイルやサブルーチンで戻り値を取得する サブルーチンの戻り値を「if」コマンドで分岐処理する

 

呼び出すものがサブルーチンではなく、バッチファイルでも同様です。呼び出されるバッチファイル内で「exit /b [数字]」を記述すれば、メインプログラムの方で、変数「errorlevel」を参照するれば指定した[数字]を得ることができます。

 

普通の変数に値を代入して取り出す

バッチファイルやサブルーチンから値を得る方法は変数「errorlevel」を使う方法だけではありません。他の方法として、もっと単純に「普通の変数に値を代入するだけ」という方法があります。これは、通常時に変数を利用するように、呼び出したサブルーチンやバッチファイル内で、

などとすれば、どこからでも変数「value」の値を「%value%」として参照できますので、メインプログラムに戻った後でもこの変数を利用すればよいだけです。

 

以下、バッチファイル例です。

サブルーチン内で代入した変数(11行目)は、メインプログラムに戻った後も使えます(6行目)。

 

以下、実行結果を示します。

呼び出したバッチファイルやサブルーチンで戻り値を取得する サブルーチン内で設定した変数をメインプログラムでも使用

 

Windowsバッチファイル初心者へ向けた入門書を作成しました


Windowsバッチファイル初心者の方へ向けた入門書(PDF)を作成しました。


・初めてWindowsバッチファイルを勉強してみようと思っている方

・使ったことはあるが一から基礎を学び直したい方


へ向けて丁寧な解説を行っています。


「全くプログラムを知らない方でも、この入門書を読んだ後には、Windowsバッチファイルの中級者レベルになれるように」をコンセプトに執筆したものです。


この本を読めば、バッチファイルを使ったファイルやフォルダの操作に関しては一通りのことができるようになります。そうなればもう十分中級者と呼べるレベルですので、あとは自分のやりたいことを実現しようとする中で徐々に知識を蓄えていくだけですぐに上級者へなれるでしょう。


詳しくみる

関連ページ

コメントを残す