2010-01-22 67 views

risposta

37

in origine, un file .COM era un blob letterale del 8086 il codice (che è, a 16-bit x86). È pensato per essere caricato a un indirizzo fisso e il loader salterà direttamente al primo byte del suo indirizzo. Ha anche dimensioni limitate.

Un file .EXE ha più informazioni di intestazione. Quindi ha richiesto strutture per cose come il collegamento dinamico, dove il codice di una DLL può essere patchato nello spazio di memoria dello .EXE in fase di caricamento. Originariamente viene da DOS, ma è usato oggi in Windows.

Tuttavia DOS e Windows sono passati a un modello in cui l'estensione del file in un .COM e .EXE non significava nulla. Il programma di caricamento controlla prima i primi due byte del file. Se si tratta della stringa MZ (legend has it this stands for the initials of an early Microsoft employee), verrà trattata come EXE, altrimenti verrà caricata come se fosse un file COM. Dal momento che MZ non esegue il mapping a un'istruzione x86 ragionevole per avviare un programma, è possibile farla franca. Effetto netto: in alcune versioni di DOS/Windows, un .EXE può essere denominato con .COM e viceversa. Ad esempio, in molte versioni di DOS/Windows, il famoso COMMAND.COM era in realtà un EXE.

Non sono sicuro di quanto il paragrafo precedente si applica alle versioni basate su NT di Windows. Immagino che ormai abbiano abbandonato del tutto la roba .COM.

Infine, un file .BAT è un elenco di comandi da eseguire come se fossero stati digitati al prompt dei comandi. Tuttavia in questi giorni la maggior parte delle persone li chiama come .CMD.

+7

** MZ ** sta per ** MORIN Zobowski ** - Ha progettato e implementato le prime versioni delle intestazioni EXE. :) –

+0

È possibile rinominare qualsiasi file .exe in .com e funzionerà correttamente - non fa alcuna differenza. –

+0

Solo perché viene eseguito non significa che funzioni! EXE e COM sono come 2 modelli di auto completamente diversi dalla stessa produzione. –

0

Un file bat (ch) è uno script che viene eseguito dal comando interprete.

Un file exe è un codice binario compilato da eseguire direttamente sulla CPU.

Un file com è una reliquia del passato per creare un piccolo exe.

1

.bat è un file batch. È interpretato.

.exe è un file di programma eseguibile normale.

Un file .com, almeno per MS-DOS, presenta molti metadati mancanti e viene caricato in uno specifico offset nella memoria principale. È più piccolo di .exe

2

Suppongo tu voglia dire per Windows?

"a.bat" dovrebbe essere un file batch, l'equivalente Windows/DOS di un file di script.

"a.com" e "a.exe" dovrebbero essere equivalenti in questi giorni. Tuttavia, nei giorni Windows 3.x, un file "com" era un file eseguibile DOS, in cui un file "exe" era un eseguibile portatile o un eseguibile basato su Windows. Al giorno d'oggi questo è un trucco, poiché sul disco rigido possono esistere file nel formato "www.example.com" e molte persone scambiano questo tipo di file per un collegamento web. Ancora peggio, in genere Windows tenta di eseguire file "com" prima dei file "exe".

+0

L'ordine di precedenza nella ricerca di file eseguibili (http://support.microsoft.com/kb/35284) è utile anche quando ci si trova in un bind (raramente). I file – Liao

+3

.exe esistevano prima che Windows venisse visualizzato. –

+2

In realtà, i file eseguibili portatili esistevano prima di Windows. Vedi Wikipedia. –

0

bat - Batch File: elenco dei comandi (in pratica un file di testo con comandi a riga di comando)

.COM - DOS eseguibile caricato in un blocco fisso di memoria (deriva dai tempi ancora prima multi-tasking)

.EXE - file eseguibile - applicazione standard sulla piattaforma Windows

-2

effetti di file .bat direttamente sulle prestazioni della CPU. Mentre, il file .exe verrà compilato dall'interprete e quindi eseguito sulla CPU.

1

Mentre i file EXE e BAT spesso hanno uno scopo simile, utilizzano formati di file completamente diversi. Entrambi i tipi di file possono essere utilizzati per creare contenuti eseguibili in Windows, ma i file BAT sono limitati nei comandi che possono eseguire. Poiché i file BAT contengono testo leggibile dall'uomo, possono essere facilmente modificati e pertanto vengono spesso utilizzati per attività di scripting personalizzate. I file EXE, d'altra parte, contengono dati binari complessi che vengono creati utilizzando un compilatore. Poiché i file EXE supportano comandi più complessi dei file BAT, la maggior parte delle applicazioni Windows vengono salvate nel formato EXE.

Stavo anche cercando la stessa query e ho trovato qualcosa che è stato incollato qui.

prega di fare riferimento al link qui sotto, lo troverete utile, risponde perfettamente alla tua domanda:
Difference between .BAT and .EXE

0

In realtà, .com e .exe sono entrambi i file eseguibili binari, mentre .bat è fondamentalmente un file batch . Supponiamo ora di avere molti file con lo stesso nome, ma diverse estensioni.

Ad esempio, a.com, a.exe e se si sta eseguendo il file di prompt dei comandi a. Per prima cosa eseguirà a.com (solo se esiste), altrimenti verrà eseguito a.exe. O dire che a.exe non è anche lì allora cercherà l'esecuzione a.bat. file di

+0

Vedere anche * [Ordine in cui il prompt dei comandi esegue i file con lo stesso nome (a.bat vs a.cmd vs a.exe)] (http://stackoverflow.com/questions/605101/order-in-which- prompt dei comandi Esegue-files-con-il-stesso-nome-a-bat-vs-a-cmd/605.139 # 605.139) * –

1
  • A .BAT (abbreviazione di "batch") è un file di testo che contiene una serie di comandi di Windows .
  • Un file .EXE (abbreviazione di "eseguibile") è un file binario che contiene codice binario eseguibile molto più complesso.
  • Un file .COM era un eseguibile DOS e al giorno d'oggi è lo stesso di .EXE.