COMMAND — устаревший интерпретатор MS-DOS и его отличие от CMD

COMMAND — интерпретатор командной строки MS-DOS, предшественник современного CMD. Синтаксис, ключи /E /P /C /K и практические примеры запуска.

COMMAND (command.com) — интерпретатор командной строки MS-DOS и ранних версий Windows 9x. В современных версиях Windows его роль полностью выполняет cmd.exe, однако понимание COMMAND важно при работе с устаревшим программным обеспечением, DOS-эмуляторами и исторической документацией.

Синтаксис команды COMMAND

COMMAND [[диск:]путь] [устройство] [/E:nnnnn] [/P] [/C строка] [/K файл] [/MSG]

[диск:]путь — путь к каталогу, который COMMAND использует как корневой для поиска командных файлов.
устройство — устройство ввода-вывода для командной строки (например, CON, COM1).

Ключи и параметры

Ключ Описание Пример
/E:nnnnn Задаёт начальный размер блока окружения (environment) в байтах. Диапазон: 160–32 768 /E:2048
/P Делает запущенный экземпляр постоянным — команда EXIT не закрывает его. Используется в AUTOEXEC.BAT COMMAND /P
/C строка Выполняет указанную команду и немедленно завершает работу интерпретатора COMMAND /C DIR C:\
/K файл Выполняет указанный командный файл (.bat) и остаётся в интерактивном режиме после его завершения COMMAND /K INIT.BAT
/MSG Хранит все сообщения об ошибках в памяти (требует /P). Используется при загрузке с дискеты COMMAND /P /MSG

Примеры использования

Запуск однократной команды и выход

Выполнить команду DOS и сразу завершить сессию COMMAND:

COMMAND /C DIR C:\WINDOWS

Аналог в современном CMD: cmd /C DIR C:\Windows. Интерпретатор запускается, выполняет DIR и закрывается.

Запуск скрипта с сохранением сессии

Выполнить BAT-файл инициализации и остаться в командной строке:

COMMAND /K C:\SCRIPTS\INIT.BAT

После выполнения INIT.BAT командная строка остаётся открытой для дальнейшей работы.

Запуск постоянного интерпретатора с увеличенным окружением

В CONFIG.SYS или AUTOEXEC.BAT DOS-систем:

COMMAND /P /E:4096

Интерпретатор не завершится по команде EXIT, а блок окружения увеличен до 4 096 байт — достаточно для длинных переменных PATH.

Вложенный интерпретатор для тестирования скрипта

Запустить новый экземпляр COMMAND внутри текущей сессии:

COMMAND

Открывается дочерний интерпретатор. Команда EXIT закрывает его и возвращает в родительскую сессию, не затрагивая её переменные окружения.

Запуск программы через DOSBox или эмулятор

При использовании DOSBox для запуска старых программ COMMAND.COM монтируется вместе с диском:

MOUNT C C:\DOSGAMES
C:
COMMAND /K GAME.BAT

Инициализируется DOS-окружение, выполняется стартовый скрипт игры, затем остаётся доступной командная строка.

Частые ошибки и решения

Ошибка / ситуация Причина Решение
Bad command or file name Команда не поддерживается COMMAND.COM или не найдена в PATH Проверьте PATH; используйте только команды, совместимые с MS-DOS; убедитесь, что имя файла в формате 8.3
COMMAND.COM не найден при загрузке DOS Файл удалён или повреждён; неверно указан путь в SHELL= в CONFIG.SYS Восстановите COMMAND.COM с загрузочного носителя; проверьте строку SHELL=C:\COMMAND.COM /P в CONFIG.SYS
Переменные окружения обрезаются Размер блока окружения слишком мал (по умолчанию 256 байт) Увеличьте через /E:nnnn или добавьте SHELL=COMMAND.COM /E:2048 /P в CONFIG.SYS
В Windows 10/11 команда COMMAND открывает CMD В современных Windows COMMAND.COM запускает cmd.exe через обёртку совместимости Это нормальное поведение; используйте cmd.exe напрямую
Длинные имена файлов не распознаются COMMAND.COM поддерживает только формат 8.3 (8 символов имени + 3 расширение) Используйте короткие имена файлов или 8.3-псевдонимы; в CMD такой проблемы нет

Когда применять, а когда нет

COMMAND (command.com) актуален исключительно в DOS-окружениях: загрузочные дискеты MS-DOS/FreeDOS, эмуляторы DOSBox и PCem, встроенное ПО промышленных устройств на базе DOS. В Windows XP и более поздних версиях COMMAND.COM — лишь оболочка-заглушка, перенаправляющая вызовы к cmd.exe. Для всех задач в современной Windows используйте cmd.exe (32/64-битный, поддерживает длинные пути и Unicode) или PowerShell. Ни COMMAND, ни CMD не требуют прав администратора для запуска, но отдельные команды внутри них — требуют.

FAQ

Чем COMMAND отличается от CMD?

COMMAND.COM — 16-битный интерпретатор MS-DOS, поддерживает только имена файлов в формате 8.3 и ограниченный набор встроенных команд. CMD.EXE — 32/64-битный интерпретатор Windows NT, поддерживает длинные имена, Unicode, скрипты .bat и .cmd, переменные окружения большого объёма и расширенные команды (FOR /F, SETLOCAL и др.).

Работает ли COMMAND в Windows 10 и Windows 11?

Формально да: при вводе command в строке «Выполнить» откроется CMD. Оригинальный 16-битный COMMAND.COM без эмулятора не запустится на 64-битных Windows — 64-битная подсистема не поддерживает 16-битные приложения. Для запуска DOS-программ используйте DOSBox.

Можно ли запустить COMMAND.COM в 64-битной Windows?

Нет. 64-битные версии Windows не имеют подсистемы NTVDM (NT Virtual DOS Machine), поэтому 16-битный COMMAND.COM не запустится. Решение — эмулятор DOSBox или 32-битная виртуальная машина с Windows XP.

Зачем нужен ключ /P?

Ключ /P делает COMMAND постоянным интерпретатором оболочки: команда EXIT не завершает его. Использовался в строке SHELL= в CONFIG.SYS, чтобы пользователь не мог случайно закрыть командную строку при загрузке DOS.

Как выйти из вложенного экземпляра COMMAND?

Введите EXIT. Если COMMAND запущен без ключа /P, он завершится и вернёт управление родительскому процессу. Если с /P — EXIT не сработает, это намеренное ограничение.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

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