バッチファイルとは、簡単に言うとコマンドプロンプトに実行させたいコマンドをまとめて書いたテキストファイルのことです。
バッチファイルを実行すると、ファイルに記述されたコマンドが1行ずつ実行されます。作業の自動化等によく使われます。
バッチファイルの拡張子には「.bat」及び「.cmd」があります。
種類の部分を見ても分かる通り、「.bat」が「Windowsバッチファイル」で「.cmd」が「Windowsコマンドスクリプト」となっていますが、どちらもバッチファイルと呼ぶことが多いです。
「.bat」と「.cmd」の違い
本来は、MS-DOSやWindows 95/98/ME等に搭載されていたコマンドラインインタプリタ「COMMAND.COM」を使用するのが「BATファイル(.bat)」で、Windows NT系(Windows10/8/7/Vista/XP/2000等)に搭載されているコマンドラインインタプリタ「cmd.exe(コマンドプロンプト)」を使用するのが「CMDファイル(.cmd)」です。
しかし「cmd.exe」は「COMMAND.COM」と、ある程度の互換性があり、コマンドは混乱がないように似せて作られています。
そのため「COMMAND.COM」で使用していたコマンドが「cmd.exe」でもほぼそのまま使用でき、バッチファイルも「.bat」の拡張子のままでも動作可能です。
現在の使われ方では、「BATファイル(.bat)」と「CMDファイル(.cmd)」の間にほとんど違いはないと言って問題ありません。
コマンドラインインタプリタが「cmd.exe」に変わった時点で「CMDファイル」に統一すべきだったのでしょうが、そのまま使われ続け、今でも「BATファイル」の方が主流で使われているように思います。
実行順序の違い
バッチファイルで以下の2ファイルがあるとします。
- バッチファイル.bat
- バッチファイル.cmd
コマンドプロンプト上で拡張子なしで「バッチファイル」のみを入力して実行した場合、「バッチファイル.bat」が実行されます。
これは、システム環境変数「PATHEXT」で「.bat」が「.cmd」より先に設定されているためです。
コメント