今回はタイトルの通り、Windowsのバッチファイルの拡張子「.cmd」と「.bat」の違いについて、ここに個人的な備忘として残しておきたいと思います。
最近、Javaのビルドツールである「ant」を触っていた時に、インストールフォルダの"bin"フォルダを見てみたところ、「ant.cmd」と「ant.bat」がありました。
Windowsにおけるバッチファイルは、「.cmd」と「.bat」を拡張子として作成しているのはなんとなく知っていましたが、これらの違いなどが良くわかっていなかったので、今回調べてみました。
主に以下の記事を参考にさせていただきました。
バッチファイルとは | とあるオタクの徒然日記
詳細は、上記の記事にすべて記載されているのですが、違いは過去のWindowsと最近のWindowsでそれぞれ異なる拡張子を採用していたというところみたいです。
ですが、互換性を考慮してどちらもほぼ問題なく使用できるようになっているようです(とはいえ、一部機能には違いがあるようなのでちゃんと使い分ける必要があるところもあるようです)。
なので、基本的にはどちらの拡張子でバッチファイルを書いてもほぼ問題なく実行できると思われます。
また、よくコマンドプロンプトでバッチファイルを実行するときには拡張子なしでも実行できるのですが、その場合にはどちらが優先されるか気になりますよね。
結論は、「.bat」が優先されるようです。ここの仕組みは「PATHEXT」環境変数に仕組みあるようなので、今度調べてみたいと思います。
今回はこの辺で失礼いたします。最後までお読みいただきありがとうございました。