В чем разница между расширениями a.bat, a.com и a.exe?
В чем разница между .com, .exe и .bat?
Ответы (9)
Первоначально файл .COM
представлял собой буквальный BLOB-объект кода 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
.
.bat - это командный файл. Это интерпретируется.
.exe - это обычный исполняемый файл программы.
В файле .com, по крайней мере для MS-DOS, отсутствуют многие метаданные, и он загружается в определенное смещение в основной памяти. Он меньше, чем .exe
Я так понимаю, вы имеете в виду Windows?
"a.bat" должен быть пакетным файлом, эквивалентом файла сценария для Windows / DOS.
В наши дни "a.com" и "a.exe" считаются эквивалентными. Однако еще во времена Windows 3.x "com" файл был Исполняемый файл DOS, где исполняемый файл «exe» был переносимым исполняемым файлом или исполняемым файлом для Windows. . В наши дни это проблема, поскольку на вашем жестком диске могут существовать файлы в формате «www.example.com», и многие люди принимают такой файл за веб-ссылку. Хуже того, Windows обычно пытается запускать файлы «com» перед файлами «exe».
Файл bat (ch) - это сценарий, который выполняется интерпретатором команд.
EXE-файл - это скомпилированный двоичный код, который будет выполняться непосредственно на процессоре.
Com-файл - это пережиток прошлого для создания небольшого exe-файла.
.BAT - Пакетный файл: список команд (в основном текстовый файл с командами командной строки)
.COM - Исполняемый файл DOS, загружаемый в фиксированный блок памяти (происходит от до многозадачности)
.EXE - Исполняемый файл - стандартное приложение на платформе Windows
Хотя файлы EXE и BAT часто служат схожей цели, они используют совершенно разные форматы файлов. Оба типа файлов могут использоваться для создания исполняемого содержимого в Windows, но файлы BAT ограничены в командах, которые они могут выполнять. Поскольку файлы BAT содержат читаемый человеком текст, их можно легко редактировать, и поэтому они часто используются для пользовательских задач сценариев. EXE-файлы, с другой стороны, содержат сложные двоичные данные, созданные с помощью компилятора. Поскольку файлы EXE поддерживают более сложные команды, чем файлы BAT, большинство приложений Windows сохраняются в формате EXE.
Я также искал тот же запрос и нашел кое-что, что вставлено здесь.
Перейдите по ссылке ниже, она будет вам полезна, она идеально отвечает на ваш вопрос:
Разница между .BAT и .EXE
На самом деле .com и .exe - это двоичные исполняемые файлы, тогда как .bat - это, по сути, командный файл. Теперь предположим, что у вас есть много файлов с одинаковыми именами, но с разными расширениями.
Например, a.com
, a.exe
и, если вы запускаете файл командной строки a. Сначала он выполнит a.com
(только если он существует), иначе он запустит a.exe
. Или скажите, что a.exe
тоже нет, тогда он будет искать a.bat
выполнение.
- Файл .BAT (сокращение от «batch») - это простой текстовый файл, содержащий ряд команд Windows.
- Файл .EXE (сокращение от «исполняемый») - это двоичный файл, который содержит гораздо более сложный исполняемый двоичный код.
- Файл .COM был исполняемым файлом DOS и в настоящее время аналогичен файлу .EXE.
.bat-файл напрямую влияет на производительность процессора. При этом файл .exe будет скомпилирован интерпретатором, а затем выполнен на ЦП.