.com、.exe、.batの違いは何ですか? 質問する

.com、.exe、.batの違いは何ですか? 質問する

a.bat、a.com、a.exe 拡張子の違いは何ですか?

ベストアンサー1

元々、.COMファイルは 8086 コード (つまり、16 ビット x86) の文字通りの塊でした。これは固定アドレスにロードされることを意図しており、ローダーはアドレスの最初のバイトに直接ジャンプします。また、サイズも制限されています。

ファイルには.EXE、より多くのヘッダー情報があります。そのため、動的リンクなどの構造が必要となり、読み込み時に DLL のコードを.EXEのメモリ領域にパッチすることができます。これは元々 DOS から来ていますが、現在は Windows でも使用されています。

.COMしかし、DOSとWindowsは最終的に、ファイル拡張子が何の意味も持たないモデルに移行しました.EXE。プログラムローダーはまずファイルの最初の2バイトをチェックします。それが文字列MZ(伝説によると、これはマイクロソフトの初期の従業員の頭文字を表している。)の場合は として扱いEXE、そうでない場合はファイルであるかのようにロードしますCOMMZはプログラムを起動するための適切な x86 命令にマップされないため、このような処理を回避できます。 実質的な影響:DOS/Windows の一部のバージョンでは、 は.EXEで命名でき.COM、その逆も可能です。たとえば、DOS/Windows の多くのバージョンでは、有名な はCOMMAND.COM実際には でしたEXE

前の段落が NT ベースの Windows バージョンにどの程度当てはまるかはわかりません。おそらく、今では Windows は NT ベースの.COMものを完全に放棄していると思います。

最後に、.BATファイルとは、コマンド プロンプトで入力した場合と同じように実行されるコマンドのリストです。ただし、最近ではほとんどの人が という名前を付けています.CMD

おすすめ記事