久しぶりにバッチファイルを使ってみて、はまってしまったのでメモを作成。
あるバッチファイルの中で、他のバッチファイルを呼ぶようにしたら、PCによって動いたり、動かなかったりする。
はて?
バッチファイルの構成は以下のような感じで、メインのバッチファイルから他のバッチファイルを呼び出しているだけなんだけどね。
Main.bat
——-
echo off
setparams.bat ←ここで呼び出しているバッチファイルでパスの設定とかやっている
rem 以下、その他の処理
:
:
pause
——-
しばらく試行錯誤してて気付いたんだけど、どうも呼び出しているバッチファイルの処理が終わる前に次の処理に進んでしまっている感じがする。
そういやバッチファイルの処理指定があったなー、とか思いだして調べてみたら、Callで呼び出してあげればバッチファイルの処理待ちをしてくれるって事を思いだした。
これがなかったんで、ちょっと速いPCだと、処理が終わらないうちに先に進んでしまってエラーになってた模様。
バッチファイルの呼び出しを以下のように書き換えて無事にどのPCでも同じ動きになって解決。
Main.bat
——-
echo off
call setparams.bat
rem 以下、その他の処理
:
:
pause
——-
久しぶりに仕事ネタでした。