Интерпретатор командной строки по умолчанию для DOS, Windows 95, Windows 98 и Windows Me
command.com, работающий в
Windows консоль в
Windows 95 (приглашение MS-DOS)
COMMAND.COM - это интерпретатор командной строки по умолчанию для MS- DOS, Windows 95, Windows 98, Windows 98SE и Windows Me. В случае DOS это пользовательский интерфейс по умолчанию. также. Он выполняет дополнительную роль как обычная первая программа, запускаемая после загрузки (корневой процесс), поэтому отвечает за настройку системы путем запуска файла конфигурации AUTOEXEC.BAT и является предком всех
Преемником COMMAND.COM в системах OS / 2 и Windows NT является cmd. exe, хотя COMMAND.COM также доступен в виртуальных машинах DOS на IA-32 версиях этих операционных систем.
Имя файла COMMAND.COM также использовалось программой управления дисками [de ] (DCP), производным от MS-DOS бывшего восточногерманского VEB Robotron.
Совместимая команда процессор под FreeDOS иногда также называется FreeCom.
COMMAND.COM - это программа DOS. Программы, запускаемые из COMMAND.COM, представляют собой программы DOS, которые используют DOS API для связи с дисковой операционной системой.
Содержание
- 1 Режимы работы
- 2 Внутренние команды
- 3 Команды пакетного файла
- 4 Команда IF
- 5 Переменные
- 6 Перенаправление, трубопроводы и цепочки
- 7 Ограничения
- 8 В популярной культуре
- 9 См. Также
- 10 Ссылки
- 11 Дополнительная литература
Режимы работы
В качестве оболочки COMMAND.COM имеет два различных режима работы. Первый - это интерактивный режим, в котором пользователь вводит команды, которые затем немедленно выполняются. Второй - это пакетный режим, в котором выполняется заранее заданная последовательность команд, сохраненная в виде текстового файла с расширением .BAT.
Внутренние команды
Внутренние команды - это команды, хранящиеся непосредственно в двоичном файле COMMAND.COM. Таким образом, они всегда доступны, но могут быть выполнены только непосредственно из интерпретатора команд.
Все команды выполняются после нажатия клавиши ↵ Enterв конце строки. COMMAND.COM не чувствителен к регистру, то есть команды можно вводить в любом сочетании верхнего и нижнего регистра.
- BREAK
- Управляет обработкой прерывания программы с помощью Ctrl+Cили Ctrl+ Break.
- CHCP
- Отображает или изменяет текущую систему кодовая страница.
- CHDIR, CD
- Изменяет текущий рабочий каталог или отображает текущий каталог.
- CLS
- Очищает экран.
- COPY
- Копирует один файл в другой (если целевой файл уже существует, MS-DOS спросит, заменить ли его). (См. Также XCOPY, внешнюю команду, которая также может копировать деревья каталогов.)
- CTTY
- Определяет устройство, которое будет использоваться для ввода и вывода.
- ДАТА
- Отображение и установка дата системы.
- DEL, ERASE
- Удаляет файл. При использовании в каталоге удаляет все файлы только внутри каталога. Для сравнения, внешняя команда DELTREE удаляет все подкаталоги и файлы внутри каталога, а также сам каталог.
- DIR
- Выводит список файлов в указанном каталоге.
- ECHO
- Переключает, отображается ли текст (
ECHO ON
) или нет (ECHO OFF
). Также отображает текст на экране (ECHO text
). - EXIT
- Выход из COMMAND.COM и возврат к программе, которая его запустила.
- Включает или отключает возврат длинных имен файлов командой FOR. (Windows 9x ).
- LOADHIGH, LH
- Загружает программу в верхнюю память (
HILOAD
в DR DOS ). - Включает внешние программы для выполнения низкоуровневого доступа к диску с томом. (только MS-DOS 7.1 и Windows 9x )
- MKDIR, MD
- Создает новый каталог.
- PATH
- Отображает или изменяет значение переменной среды PATH , которая управляет местами, где COMMAND.COM будет искать исполняемые файлы.
- PROMPT
- Отображает или изменяет значение Переменная среды PROMPT, которая управляет внешним видом приглашения.
- RENAME, REN
- Переименовывает файл или каталог.
- RMDIR, RD
- Удаляет пустой каталог.
- SET
- Устанавливает значение переменной среды ; без аргументов показывает все определенные переменные среды.
- T IME
- Отображение и установка времени системы.
- TRUENAME
- Отображение полностью развернутого физического имени файла, разрешающего ASSIGN, JOIN и SUBST сопоставления логической файловой системы.
- TYPE
- Отображение содержимого файла на консоли.
- Отключает низкоуровневый доступ к диску. (Только MS-DOS 7.1 и Windows 9x )
- VER
- Отображает версию операционной системы .
- VERIFY
- Включение или отключение проверки записи для файлов.
- VOL
- Показывает информацию о томе.
Команды пакетного файла
Управляющие структуры в основном используются внутри пакетных файлов, хотя их также можно использовать в интерактивном режиме.
- : label
- Определяет цель для GOTO.
- CALL
- Выполняет другой пакетный файл и возвращается к старому и продолжает.
- FOR
- Итерация: повторяет команду для каждого из указанного набора файлов.
- GOTO
- Перемещает выполнение к указанной метке. Ярлыки указываются в начале строки с двоеточием (
: аналогичный
). - IF
- Условный оператор, разрешающий ветвление выполнения программы.
- PAUSE
- Останавливает выполнение программы и отображает сообщение с запросом пользователь должен нажать любую клавишу для продолжения.
- REM
- комментарий : любой текст, следующий за этой командой, игнорируется.
- SHIFT
- Заменяет каждый из параметров замены с последующим (например,
% 0
с %1
, %1
с % 2
и т. Д.).
Команда IF
При выходе все внешние команды отправляют вызывающей программе код возврата (значение от 0 до 255). Большинство программ имеют определенное соглашение для их кодов возврата (например, 0 для успешного выполнения).
Если программа была вызвана из COMMAND.COM, внутренняя команда IF с ее условным условием ERRORLEVEL может использоваться для проверки условий ошибки последней запущенной внешней программы.
В COMMAND.COM внутренние команды не работают. установить новое значение.
Variabl es
Пакетные файлы для COMMAND.COM могут иметь четыре типа переменных:
- Переменные среды : они имеют форму
% VARIABLE%
и связаны со значениями с помощью SET заявление. До DOS 3 COMMAND.COM будет расширять переменные среды только в пакетном режиме; то есть, не в интерактивном режиме в командной строке. - Параметры замены : они имеют форму
%0
, %1
... % 9
и первоначально содержат имя команды и первые девять параметры командной строки, переданные в сценарий (например, если вызывающая команда была «myscript.bat John Doe
», то % 0
будет «myscript.bat», % 1
- это «Джон», а % 2
- «Doe»). Параметры справа от девятого могут быть отображены в диапазоне с помощью оператора SHIFT. - Переменные цикла: используются в циклах, они имеют формат
%% a
при запуске в пакетных файлах.. Эти переменные определены исключительно в конкретном операторе FOR и перебирают определенный набор значений, определенных в этом операторе FOR. - В Novell DOS 7, OpenDOS 7.01, DR-DOS 7.02 и выше, COMMAND.COM также поддерживает ряд переменных системной информации, функция, ранее обнаруженная в 4DOS 3.00 и выше, а также в Многопользовательской DOS, хотя большинство поддерживаемых имен переменных различаются.
Перенаправление, конвейерная обработка и связывание
Поскольку DOS является однозадачной операционной системой, конвейерная передача достигается путем последовательного выполнения команд с перенаправлением во временный файл и обратно. COMMAND.COM не предусматривает перенаправление канала стандартной ошибки.
команда < filename
- Перенаправить стандартный ввод из файла или устройства
команда>имя_файла
- Перенаправить стандартный вывод, перезаписывая целевой файл, если он существует.
команда>>имя файла
- Перенаправить стандартный вывод с добавлением в целевой файл, если он существует.
command1 | command2
- Передает стандартный вывод из command1 в стандартный ввод of command2
command1 ¶ command2
- Команды, разделенные ASCII-20 (¶, вызываются Ctrl+T) выполняются последовательно (цепочка команд). Другими словами, сначала выполняется команда 1 до завершения, затем команда 2. Это недокументированная функция в COMMAND.COM MS-DOS / PC DOS 5.0 и выше. Он также поддерживается COMMAND.COM семейства Windows NT и DR-DOS 7.07. Все версии DR-DOS COMMAND.COM уже поддерживали аналогичную внутреннюю функцию с использованием вместо этого восклицательного знака (!) (Функция, изначально заимствованная из Concurrent DOS и Multiuser DOS ), однако, в однопользовательской строке эта функция была доступна только внутри (во встроенных сценариях запуска, таких как "! DATE! TIME") и косвенно через параметр $ T DOSKEY, чтобы избежать проблем с! как допустимый символ имени файла. 4DOS поддерживает настраиваемый разделитель командной строки (4DOS.INI CommandSep = или SETDOS / C), который по умолчанию равен ^. COMMAND.COM в новых версиях Windows NT также поддерживает разделитель
и
для совместимости с синтаксисом cmd в OS / 2 и семействе Windows NT. (cmd, однако, не поддерживает разделитель ¶.)
Ограничения
Длина командной строки в интерактивном режиме ограничена 126 символами.
В популярной культуре
Сообщение «Загрузка COMMAND.COM» можно увидеть в HUD окне Terminator и во внутреннем окне просмотра RoboCop, когда он перезагружается.
В детском сериале CGI ReBoot, действие которого происходит внутри компьютеров, лидера системы (аналог города) называют COMMAND.COM.
См. Также
- IBMBIO.COM / IO.SYS (запускает командный процессор как первый процесс)
- SHELL (директива CONFIG.SYS) (для переопределения командного процессора по умолчанию)
- COMSPEC (переменная среды) (устанавливается COMMAND.COM для перезагрузки переходной части самого себя)
- CMDLINE (переменная среды) (устанавливается COMMAND.COM для передачи длинные командные строки для внешних программ)
- 4DOS / NDOS (заменяющие сторонние командные процессоры)
- DOSSHELL / ViewMAX (альтернативные оболочки DOS)
- Список команд DOS
- Сравнение командных оболочек
- Параллельная DOS / Многопользовательская DOS / REAL / 32 (имеют аналогичные командные процессоры без имени COMMAND. COM)
- PC-MOS / 386 (имеет аналогичный командный процессор)
- Transient Program Area (TPA) (область, доступная для использования либо запущенным приложением, либо переходной частью COMMAND.COM)
- SpartaDOS X (аналогичная реализация для компьютеров Atari)
Ссылки
Дополнительная литература
- Купер, Джим (2001). Специальная версия с использованием MS-DOS 6.22 (3-е изд.). Публикация очереди. ISBN 978-0-78972573-8.
- Волвертон, Ван (1990). Команды MS-DOS: Краткий справочник Microsoft (4-е пересмотренное издание). Microsoft Press. ISBN 978-1-55615289-4.
- Пол, Матиас Р. (2004-06-17). «Re: Случайные зависания с DR-DOS 7.03». Конференция FidoNet : ALT_DOS. Архивировано из оригинального 28.04.2019. Проверено 28 апреля 2019.
[…] все версии MS-DOS до Windows 95 […] использовали файл COMMAND.COM в стиле COM, который имеет специальную подпись в начале файла […], запрошенного BIOS MS-DOS перед загрузкой оболочка, но не через DR-DOS BIOS […] COMMAND.COM […] проверяет, что он работает с «правильной» версией DOS, поэтому, если вы загрузите их COMMAND.COM под DR-DOS, вы должны получают сообщение об ошибке «Плохая версия» и их COMMAND.COM завершает работу, поэтому DR-DOS […] отображает сообщение об ошибке «Плохой или отсутствующий интерпретатор команд» (если DR-DOS пытался загрузить командный процессор SHELL = после завершив обработку CONFIG.SYS). В этом случае вы можете ввести путь к действующему DR-DOS COMMAND.COM (C: \ DRDOS \ COMMAND.COM), и все будет в порядке. Теперь все изменилось с тех пор, как MS-DOS 7.0 […] COMMAND.COM стал внутренне файлом в стиле EXE, поэтому нет волшебной […] сигнатуры […] для проверки […], таким образом, DR-DOS не может управлять из несовместимого COMMAND.COM. Кроме того, их COMMAND.COM больше не проверяет версию, но […] не работает под DR-DOS […] просто дает сбой […] PC DOS COMMAND.COM отлично работает под DR-DOS […]
[8] [9]