Windowsのバッチファイルからバッチファイルを呼ぶときはcallが必要なことを忘れてはいけない
callは、他のバッチファイルを呼び出すコマンドである。
コマンドプロンプトを使ってみよう! −バッチファイル−
バッチファイルの中から他のバッチファイルを呼び出す場合、
バッチファイルに他のバッチファイル名を記述しただけでは、
呼び出された側のバッチファイルが終了するとそこ動作が終了してしまい、
元のバッチファイルに戻ってくる事ができない。
つまり
ant
とかバッチファイル中で書くと、antが実はant.batでバッチファイルだったりした場合、
シェルスクリプトで言えばexecで実行したような挙動になる。ハマった。くそが。
つまりバッチファイルでコマンドを呼び出す時は、それがバッチファイルかどうか調べないといけない。くそが。
そういえばバッチファイルでexec相当の処理をするにはどうすればいいんだろう・・・?
もし対象コマンドが実行ファイル(たとえばgcc)だったらわざわざバッチファイル(run-gcc.batとか)に書いてそれを呼び出すとかしないといけないの・・・?
まぁそもそも「exec相当の処理」なんてないんだろうけど、
コールスタックだけ見れば同じような処理って意味です。