ps2pdfがバッチファイルだなんて知らなかった

(少なくとも自分の職場PC(WindowsXP)では。環境依存かもしれないのでご注意下さい。)


今日(もう昨日か)、PostScriptファイル→PDF変換を含む一連の工程のためにバッチファイルを組んでいたのですが、何度試しても本来されるはずの作業が行われず、おかしいなーと首を傾げることしきりでした。
で、その原因というのが、ps→PDF変換に使っていたps2pdfが実は.exeじゃなく.batファイルだったことでした。こちらとしてはps2pdf実行後に続けて作業してほしかったのですが、バッチファイル内で別のバッチファイルを実行すると、そっちのバッチファイルの終了とともに元のバッチファイルも止まってしまうという仕様*1が災いして作業が続行されなかった、というわけです。


というか、一括ダウンロードしたパッケージ内のツールが.exeか.batかなんて普段いちいち確かめませんよ、DOS窓からコマンド入力する分には拡張子省略できてどちらでも同じように使えるんですから。
Windowsのバッチファイル*2って何であんな仕様になってるんでしょうね*3。デフォルトでは.exeの実行も.batの実行も同じ挙動にしておいて、呼び出したバッチファイル終了時に元のバッチファイルも終了させたい(つまり、現在のデフォルト動作)場合にだけそういう処理を加える方がよっぽど直感的に理解しやすいと思うんですが。

*1:作業を続行させたい場合、callコマンドでバッチファイルを呼び出さなければならない

*2:Vistaのことは知りませんので、XP以前限定

*3:Unix系OSシェルスクリプトの場合こんなこと起こりましたっけ