web-dev-qa-db-ja.com

.com、.exe、および.batの違いは?

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

20
Sarfraz

元々、.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と名付けています。

45
asveikau

.batはバッチファイルです。解釈されます。

.exeは、通常の実行可能プログラムファイルです。

少なくともMS-DOSの場合、.comファイルには多くのメタデータが欠落しており、メインメモリの特定のオフセットにロードされます。 .exeよりも小さい

1
Extrakun

私はあなたがWindowsを意味すると思いますか?

「a.bat」は、スクリプトファイルに相当するWindows/DOSのバッチファイルであると想定されています。

最近は「a.com」と「a.exe」が同等になるはずです。ただし、 Windows 3.x の時代には、「com」ファイルは [〜#〜] dos [〜#〜] 実行可能ファイルでした。ここで、「exe」はファイルは、ポータブル実行可能ファイル、またはWindowsベースの実行可能ファイルでした。 「www.example.com」形式のファイルがハードドライブに存在する可能性があり、多くの人がそのようなファイルをWebリンクと間違えるため、これは最近の落とし穴です。さらに悪いことに、Windowsは通常、「exe」ファイルの前に「com」ファイルを実行しようとします。

1
Medivh

Bat(ch)ファイルは、コマンドインタープリターによって実行されるスクリプトです。

Exeファイルは、CPUで直接実行されるコンパイル済みのバイナリコードです。

Comファイルは、小さなexeファイルを作成するための過去の遺物です。

0
Toon Krijthe

.BAT-バッチファイル:コマンドのリスト(基本的にはコマンドラインコマンドを含むテキストファイル)

.COM-DOS実行可能ファイルがメモリの固定ブロックにロードされました(マルチタスクの前から戻ったステム)

.EXE-実行可能ファイル-Windowsプラットフォーム上の標準アプリケーション

0
mynameiscoffey

実際、.comと.exeはどちらもバイナリ実行可能ファイルですが、.batは基本的にバッチファイルです。ここで、同じ名前で拡張子が異なるファイルが多数あるとします。

たとえば、a.coma.exeで、コマンドプロンプトファイルを実行している場合は、次のようになります。最初にa.comを実行します(存在する場合のみ)。それ以外の場合は、a.exeを実行します。または、a.exeも存在しないとすると、a.batの実行が検索されます。

0
user2804021

EXEファイルとBATファイルはよく似た目的を果たしますが、まったく異なるファイル形式を使用します。どちらのファイルタイプもWindowsで実行可能コンテンツを作成するために使用できますが、BATファイルは実行できるコマンドに制限があります。 BATファイルには人間が読めるテキストが含まれているため、簡単に編集でき、カスタムスクリプトタスクによく使用されます。一方、EXEファイルには、コンパイラを使用して作成された複雑なバイナリデータが含まれています。 EXEファイルはBATファイルよりも複雑なコマンドをサポートしているため、ほとんどのWindowsアプリケーションはEXE形式で保存されます。

私も同じクエリを探していて、ここに貼り付けられているものを見つけました。

以下のリンクを参照してください。便利です。質問に完全に答えます。
。BATと.EXEの違い

0
Shrikant