2012.
04.
29
18:35:37
バッチファイルから他のバッチファイルを呼び出したいときがあります。
別に難しいことは何もないのですが、
油断し過ぎるとたまにハマるのでご注意下さい(--)b
よくある呼び出し方としてはこんな感じでしょうかφ(--)
1.「call」コマンドを使う
call test02.bat
2.「start」コマンドを使う
start test02.bat
3.そのままバッチファイル名を直接指定
test02.bat
「call」はtest02.batの終了を待って続きの処理を行います。
◆test01.bat
echo 01
call test02.bat
echo 03
◆test02.bat
REM pingはsleep代わり
ping localhost -n 60 > nul
echo 02
とかやると
01
02
03
ってな順で表示されます。
「start」はtest02.batの終了を待たないで続きの処理を行います。
てかtest02.bat自体を別プロセスで起動します。
◆test01.bat
echo 01
start test02.bat
echo 03
◆test02.bat
REM pingはsleep代わり
ping localhost -n 60 > nul
echo 02
とかやると
01
03
02(別ウィンドウ)
ってな順で表示されます。
そのままバッチファイル名を直接指定は・・
呼び出したバッチが終了した時点で処理が終わります。
◆test01.bat
echo 01
test02.bat
echo 03
◆test02.bat
REM pingはsleep代わり
ping localhost -n 60 > nul
echo 02
とかやると
01
02
ってな順で表示されます。
03は表示されません。
横着してバッチファイル名のみ書きたくなりますが
将来的にバグを埋め込みたくなければ
取りあえず「call」か「start」はつけておく方が無難です。
私は
echo test02start
test02.bat
echo test02end
echo test03start
test03.bat
echo test03end
とか書いてしまって2分くらい悩みました(つд`)
「なんでtest03動かないんだ?!」って。
別に難しいことは何もないのですが、
油断し過ぎるとたまにハマるのでご注意下さい(--)b
よくある呼び出し方としてはこんな感じでしょうかφ(--)
1.「call」コマンドを使う
call test02.bat
2.「start」コマンドを使う
start test02.bat
3.そのままバッチファイル名を直接指定
test02.bat
「call」はtest02.batの終了を待って続きの処理を行います。
◆test01.bat
echo 01
call test02.bat
echo 03
◆test02.bat
REM pingはsleep代わり
ping localhost -n 60 > nul
echo 02
とかやると
01
02
03
ってな順で表示されます。
「start」はtest02.batの終了を待たないで続きの処理を行います。
てかtest02.bat自体を別プロセスで起動します。
◆test01.bat
echo 01
start test02.bat
echo 03
◆test02.bat
REM pingはsleep代わり
ping localhost -n 60 > nul
echo 02
とかやると
01
03
02(別ウィンドウ)
ってな順で表示されます。
そのままバッチファイル名を直接指定は・・
呼び出したバッチが終了した時点で処理が終わります。
◆test01.bat
echo 01
test02.bat
echo 03
◆test02.bat
REM pingはsleep代わり
ping localhost -n 60 > nul
echo 02
とかやると
01
02
ってな順で表示されます。
03は表示されません。
横着してバッチファイル名のみ書きたくなりますが
将来的にバグを埋め込みたくなければ
取りあえず「call」か「start」はつけておく方が無難です。
私は
echo test02start
test02.bat
echo test02end
echo test03start
test03.bat
echo test03end
とか書いてしまって2分くらい悩みました(つд`)
「なんでtest03動かないんだ?!」って。