Windowsのバッチファイル(bat)から別のバッチファイルを実行する(start、call)
仕事でWindowsのバッチファイル(bat)から別のバッチファイルを呼び出して利用する機会があったので、その時のメモです。
実行する方法としては「start」を使う方法と「call」を使う方法があり、その2つの違いは「start」は新しいプロセスで実行され「call」は実行中のプロセスと同じプロセスで実行される点です。
コード
最初に実行するファイルを「main.bat」として、そのバッチファイルから「sample1.bat」と「sample2.bat」をそれぞれ「start」と「call」で呼び出す場合のコードは以下の通りです。
「main.bat」
@echo off
echo 処理開始
start sample1.bat aaa bbb ccc
call sample1.bat 111 222 333
echo 処理終了
pause
「sample1.bat」
@echo off
echo sample1実行
echo %1
echo %2
echo %3
「sample2.bat」
echo sample2実行
echo %1
echo %2
echo %3
startとcallで引数を渡したい場合は、上記の「aaa bbb ccc」や「111 222 333」のように実行するファイル名の後ろに半角スペース区切りで書きます。
実行結果
上記のバッチファイルを実行すると、結果は以下のようになります。
「main.bat」の実行結果
「main.bat」から呼び出された「sample1.bat」の実行結果
意外と簡単ですね。