Разница между .com, .exe и .bat? - PullRequest
20 голосов
/ 22 января 2010

В чем разница между расширениями a.bat, a.com и a.exe?

Ответы [ 9 ]

45 голосов
/ 22 января 2010

Изначально файл .COM представлял собой буквенный двоичный объект с кодом 8086 (то есть 16-разрядным x86). Он предназначен для загрузки по фиксированному адресу, и загрузчик сразу переходит к первому байту своего адреса. Размер также ограничен.

Файл .EXE содержит больше информации заголовка. Поэтому ему необходимы структуры для таких вещей, как динамическое связывание, когда код из DLL может быть исправлен в область памяти .EXE во время загрузки. Первоначально он был получен из DOS, но сегодня используется в Windows.

Однако DOS и Windows в конечном итоге обратились к модели, в которой расширение файла в .COM и .EXE ничего не значило. Загрузчик программы сначала проверяет первые два байта файла. Если это будет строка MZ (в легенде это означает инициалы раннего сотрудника Microsoft ), она будет обрабатываться как EXE, в противном случае она будет загружаться так, как если бы она были COM файл. Так как MZ не соответствует разумной инструкции x86 для запуска программы, они могут сойти с рук. Чистый эффект: в некоторых версиях DOS / Windows имя .EXE может быть названо .COM и наоборот. Например, во многих версиях DOS / Windows знаменитая COMMAND.COM была на самом деле EXE.

Я не уверен, насколько предыдущий абзац применим к версиям Windows на базе NT. Я предполагаю, что к настоящему времени они вообще отказались от .COM.

Наконец, файл .BAT представляет собой список команд, которые должны быть выполнены, как если бы вы вводили их в командной строке. Однако в наши дни большинство людей называют их .CMD.

1 голос
/ 22 января 2010

Я предполагаю, что вы имеете в виду для Windows?

"a.bat" должен быть командным файлом, Windows / DOS эквивалентом файла скрипта.

"a.com" и "a.exe" должны быть эквивалентны в наши дни. Однако в прежние времена Windows 3.x файл com был исполняемым файлом DOS , где exe-файл был переносимым или исполняемым файлом на базе Windows , В наши дни это проблема, поскольку файлы в формате "www.example.com" могут существовать на вашем жестком диске, и многие люди принимают этот файл за веб-ссылку. Хуже того, Windows обычно пытается выполнить «com» ​​файлы перед «exe» файлами.

1 голос
/ 22 января 2010

.bat - командный файл. Это интерпретируется.

.exe - это обычный исполняемый файл программы.

Файл .com, по крайней мере для MS-DOS, содержит много метаданных и отсутствует в определенном смещении в основной памяти. Это меньше, чем .exe

0 голосов
/ 16 ноября 2014
  • Файл .BAT (сокращение от «batch») - это простой текстовый файл, который содержит серия команд Windows.
  • Файл .EXE (сокращение от «исполняемый») - это двоичный файл, содержащий гораздо более сложный исполняемый двоичный код.
  • Файл .COM представлял собой исполняемый файл DOS и в настоящее время совпадает с .EXE.
0 голосов
/ 26 января 2014

На самом деле .com и .exe - это двоичные исполняемые файлы, тогда как .bat - это в основном командный файл. Теперь предположим, что у вас есть много файлов с одинаковыми именами, но с разными расширениями.

Например, a.com, a.exe и если вы используете файл командной строки a. Сначала он выполнит a.com (только если он существует), иначе будет запущен a.exe. Или, скажем, a.exe тоже нет, тогда он будет искать a.bat исполнение.

0 голосов
/ 02 июля 2013

Хотя файлы EXE и BAT часто служат для одной и той же цели, они используют совершенно разные форматы файлов. Оба типа файлов могут использоваться для создания исполняемого содержимого в Windows, но BAT-файлы ограничены в командах, которые они могут выполнять. Поскольку BAT-файлы содержат читабельный текст, их можно легко редактировать, и поэтому они часто используются для пользовательских задач сценариев. EXE-файлы, с другой стороны, содержат сложные двоичные данные, которые создаются с помощью компилятора. Поскольку файлы EXE поддерживают более сложные команды, чем файлы BAT, большинство приложений Windows сохраняются в формате EXE.

Я также искал тот же запрос и нашел кое-что вставленное здесь.

Пожалуйста, перейдите по ссылке ниже, вы найдете ее полезной, она отлично ответит на ваш вопрос:
Разница между .BAT и .EXE

0 голосов
/ 27 марта 2013

.bat файл влияет непосредственно на производительность процессора. В то время как файл .exe будет скомпилирован интерпретатором, а затем запущен на CPU

0 голосов
/ 22 января 2010

.BAT - Batch File: список команд (в основном текстовый файл с командами командной строки)

.COM - исполняемый файл DOS, загруженный в фиксированный блок памяти (происходит до многозадачности)

.EXE - Исполняемый файл - стандартное приложение на платформе Windows

0 голосов
/ 22 января 2010

Файл bat (ch) - это скрипт, который выполняется интерпретатором команд.

exe-файл - это скомпилированный двоичный код, который выполняется непосредственно на процессоре.

Ком-файл - это пережиток прошлого, чтобы создать маленький exe.

...