UNIX使いのための、DOS-BAT解説 ~ forkとexec
はじめに
DOS-BATファイルから別のDOS-BATファイルを起動するには、色々な方法があります。
hoge.bat start "" hoge.bat call hoge.bat
これらの起動方法が、UNIXに於ける何と対応するのか、ということを簡単にまとめます。
解説
①hoge.bat
hoge.bat
これは、UNIXで言うところの exec に当たります。BATファイルを実行するとそちらに制御が移ります。
サンプル
[test1.bat]
@echo off echo before hoge echo after
[実行結果]
C:\work>test1 before hoge
②start "" hoge.bat
start "" hoge.bat
「START」で実行すると、UNIXで言うところの fork の動きになります。新しく「cmd.exe」が起動し、そちらでBATファイルが実行されます。
サンプル
[test2.bat]
@echo off echo before start "" hoge echo after
[実行結果]
C:\work>test2 before after
(子窓)
C:\work>echo hoge hoge C:\work>
※第一引数をダブルクォートで括るとBATファイル名ではなく、ウィンドウタイトルとして解釈されてしまうので注意。
必ず第一引数に""なりBATファイル名なりを入れておくようにしておくのが無難。
③call hoge.bat
call hoge.bat
「CALL」で実行すると、UNIXで言うところの source の動きになります。同じプロセスの中で処理が起動し、終了するとプロンプトに戻ってきます。
サンプル
[test3.bat]
@echo off echo before call hoge echo after
[実行結果]
C:\work>test3 before hoge after
まとめ
BATファイルの起動方法について、ざっくりと解説しました。細かいことは端折っていますが、気になる方には以下のヘルプが参考になると思います。
cmd /? start /? call /? exit /?