2018.2.17

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」の実行結果

処理開始
sample1実行
111
222
333
処理終了
続行するには何かキーを押してください . . .

「main.bat」から呼び出された「sample1.bat」の実行結果

sample1実行
aaa
bbb
ccc

意外と簡単ですね。

その他】関連記事