A.bat、a.com、a.exe拡張子の違いは何ですか?
元々、.COM
ファイルは8086コード(つまり、16ビットx86)のリテラルblobでした。これは固定アドレスにロードされることを意図しており、ローダーはそのアドレスの最初のバイトに直接ジャンプします。サイズにも制限があります。
.EXE
ファイルには、より多くのヘッダー情報があります。そのため、動的リンクなどの構造が必要であり、ロード時にDLLのコードを.EXE
のメモリスペースにパッチできます。元々はDOSからのものですが、今日はWindowsで使用されています。
しかし、DOSとWindowsは最終的に、.COM
と.EXE
のファイル拡張子が何も意味しないモデルになりました。プログラムローダーは、最初にファイルの最初の2バイトをチェックします。文字列MZ
( これは初期のMicrosoft従業員のイニシャルを表すという伝説があります )の場合は、EXE
として扱われます。 COM
ファイルであるかのようにロードします。 MZ
は、プログラムを開始するための賢明なx86命令にマップされないため、これを回避できます。正味の効果:DOS/Windowsの一部のバージョンでは、.EXE
に.COM
という名前を付けることができ、その逆も可能です。たとえば、DOS/Windowsの多くのバージョンでは、有名なCOMMAND.COM
は実際にはEXE
でした。
前の段落がNTベースのバージョンのWindowsにどの程度適用されるかはわかりません。今では、彼らは.COM
のものを完全に放棄していると思います。
最後に、.BAT
ファイルは、コマンドプロンプトで入力したかのように実行されるコマンドのリストです。しかし、最近ではほとんどの人がそれらを.CMD
と名付けています。
.batはバッチファイルです。解釈されます。
.exeは、通常の実行可能プログラムファイルです。
少なくともMS-DOSの場合、.comファイルには多くのメタデータが欠落しており、メインメモリの特定のオフセットにロードされます。 .exeよりも小さい
私はあなたがWindowsを意味すると思いますか?
「a.bat」は、スクリプトファイルに相当するWindows/DOSのバッチファイルであると想定されています。
最近は「a.com」と「a.exe」が同等になるはずです。ただし、 Windows 3.x の時代には、「com」ファイルは [〜#〜] dos [〜#〜] 実行可能ファイルでした。ここで、「exe」はファイルは、ポータブル実行可能ファイル、またはWindowsベースの実行可能ファイルでした。 「www.example.com」形式のファイルがハードドライブに存在する可能性があり、多くの人がそのようなファイルをWebリンクと間違えるため、これは最近の落とし穴です。さらに悪いことに、Windowsは通常、「exe」ファイルの前に「com」ファイルを実行しようとします。
Bat(ch)ファイルは、コマンドインタープリターによって実行されるスクリプトです。
Exeファイルは、CPUで直接実行されるコンパイル済みのバイナリコードです。
Comファイルは、小さなexeファイルを作成するための過去の遺物です。
.BAT-バッチファイル:コマンドのリスト(基本的にはコマンドラインコマンドを含むテキストファイル)
.COM-DOS実行可能ファイルがメモリの固定ブロックにロードされました(マルチタスクの前から戻ったステム)
.EXE-実行可能ファイル-Windowsプラットフォーム上の標準アプリケーション
実際、.comと.exeはどちらもバイナリ実行可能ファイルですが、.batは基本的にバッチファイルです。ここで、同じ名前で拡張子が異なるファイルが多数あるとします。
たとえば、a.com
、a.exe
で、コマンドプロンプトファイルを実行している場合は、次のようになります。最初にa.com
を実行します(存在する場合のみ)。それ以外の場合は、a.exe
を実行します。または、a.exe
も存在しないとすると、a.bat
の実行が検索されます。
EXEファイルとBATファイルはよく似た目的を果たしますが、まったく異なるファイル形式を使用します。どちらのファイルタイプもWindowsで実行可能コンテンツを作成するために使用できますが、BATファイルは実行できるコマンドに制限があります。 BATファイルには人間が読めるテキストが含まれているため、簡単に編集でき、カスタムスクリプトタスクによく使用されます。一方、EXEファイルには、コンパイラを使用して作成された複雑なバイナリデータが含まれています。 EXEファイルはBATファイルよりも複雑なコマンドをサポートしているため、ほとんどのWindowsアプリケーションはEXE形式で保存されます。
私も同じクエリを探していて、ここに貼り付けられているものを見つけました。
以下のリンクを参照してください。便利です。質問に完全に答えます。
。BATと.EXEの違い