stringtranslate.com

КОМАНДА.COM

command.com, запущенный в консоли Windows на Windows 95 (MS-DOS Prompt)

COMMAND.COM — это интерпретатор командной строки по умолчанию для MS-DOS , Windows 95 , Windows 98 и Windows Me . В случае DOS это также пользовательский интерфейс по умолчанию. Он играет дополнительную роль в качестве обычной первой программы, запускаемой после загрузки ( процесс init ). Как оболочка, COMMAND.COM имеет два различных режима работы: интерактивный режим и пакетный режим . Внутренние команды — это команды, хранящиеся непосредственно внутри двоичного файла COMMAND.COM ; таким образом, они всегда доступны, но могут быть выполнены только напрямую из интерпретатора команд.

Описание

COMMAND.COM — это интерпретатор командной строки по умолчанию для MS-DOS , Windows 95 , Windows 98 и Windows Me . В случае DOS это также пользовательский интерфейс по умолчанию. [2] Он играет дополнительную роль в качестве обычной первой программы, запускаемой после загрузки ( процесс init ), следовательно, отвечает за настройку системы путем запуска файла конфигурации AUTOEXEC.BAT и является предком всех процессов. [ требуется ссылка ]

Преемником COMMAND.COM в системах OS/2 и Windows NT является cmd.exe , хотя COMMAND.COM также доступен в виртуальных машинах DOS в версиях IA-32 этих операционных систем. Имя файла COMMAND.COM также использовалось Disk Control Program  [de] (DCP), производной от MS-DOS бывшей восточногерманской VEB Robotron . [3]

COMMAND.COM — это программа DOS. Программы, запускаемые из COMMAND.COM, являются программами DOS, которые используют API DOS для взаимодействия с дисковой операционной системой. Совместимый командный процессор под FreeDOS иногда также называется FreeCom .

Режимы работы

Как оболочка, COMMAND.COM имеет два различных режима работы. Первый — интерактивный режим , в котором пользователь вводит команды, которые затем немедленно выполняются. Второй — пакетный режим , в котором выполняется предопределенная последовательность команд, сохраненная в виде текстового файла с расширением .BAT .

Внутренние команды

Внутренние команды — это команды, хранящиеся непосредственно внутри двоичного файла COMMAND.COM. Таким образом, они всегда доступны, но могут быть выполнены только непосредственно из интерпретатора команд.

Все команды выполняются после ↵ Enterнажатия клавиши в конце строки. COMMAND.COM не чувствителен к регистру, то есть команды можно вводить в любой комбинации верхнего и нижнего регистра.

ПЕРЕРЫВ
Управляет обработкой прерывания программы с помощью + или + .CtrlCCtrlBreak
ЧКП
Отображает или изменяет текущую системную кодовую страницу .
ЧДИР, CD
Изменяет текущий рабочий каталог или отображает текущий каталог.
ЦЛС
Очищает экран.
КОПИЯ
Копирует один файл в другой (если целевой файл уже существует, MS-DOS спрашивает, следует ли заменить его). (См. также XCOPY , внешнюю команду, которая также может копировать деревья каталогов).
CTTY
Определяет устройство, используемое для ввода и вывода.
ДАТА
Отображение и установка даты системы.
УДАЛИТЬ, СТЕРЕТЬ
Удаляет файл. При использовании в каталоге удаляет все файлы только внутри каталога. Для сравнения, внешняя команда DELTREE удаляет все подкаталоги и файлы внутри каталога, а также сам каталог.
ДИР
Выводит список файлов в указанном каталоге.
ЭХО
Переключает отображение текста ( ECHO ON) или его отсутствие ( ECHO OFF). Также отображает текст на экране ( ECHO text).
ВЫХОД
Выходит из COMMAND.COM и возвращается в программу, которая его запустила.
ЛФНФОР
Включает или отключает возврат длинных имен файлов командой FOR. ( Windows 9x ). [ необходима цитата ]
ГРУЗ ВЫСОКИЙ, ЛЕВ.
Загружает программу в верхнюю память ( HILOADв DR DOS ).
ЗАМОК
Позволяет внешним программам выполнять низкоуровневый доступ к диску. ( Только MS-DOS 7.1 и Windows 9x ) [ необходима ссылка ]
МКДИР, доктор медицины
Создает новый каталог.
ПУТЬ
Отображает или изменяет значение переменной среды PATH , которая управляет местами, где COMMAND.COM будет искать исполняемые файлы.
БЫСТРЫЙ
Отображает или изменяет значение переменной среды PROMPT, которая управляет внешним видом приглашения.
ПЕРЕИМЕНОВАТЬ, РЕН
Переименовывает файл или каталог.
РМДИР, РД
Удаляет пустой каталог.
НАБОР
Устанавливает значение переменной среды ; без аргументов показывает все определенные переменные среды.
ВРЕМЯ
Отображение и установка времени системы.
ИСТИННОЕ ИМЯ
Отображает полностью развернутое физическое имя файла, разрешая логические сопоставления файловой системы ASSIGN , JOIN и SUBST . [4]
ТИП
Отобразить содержимое файла на консоли.
РАЗБЛОКИРОВАТЬ
Отключает низкоуровневый доступ к диску. ( Только MS-DOS 7.1 и Windows 9x ) [ необходима цитата ]
ВЕР
Отображает версию операционной системы .
ПРОВЕРЯТЬ
Включить или отключить проверку записи для файлов.
ОБЪЕМ
Показывает информацию о томе.

Команды пакетного файла

Управляющие структуры в основном используются внутри пакетных файлов, хотя их также можно использовать интерактивно. [5] [4]

: этикетка
Определяет цель для GOTO.
ВЫЗОВ
Выполняет другой пакетный файл, возвращается к старому и продолжает работу.
ДЛЯ
Итерация: повторяет команду для каждого из указанного набора файлов.
ПЕРЕЙТИ
Перемещает выполнение на указанную метку. Метки указываются в начале строки с двоеточием ( :likethis).
ЕСЛИ
Условный оператор, допускающий разветвление выполнения программы.
ПАУЗА
Останавливает выполнение программы и отображает сообщение с просьбой нажать любую клавишу для продолжения.
БДГ
комментарий : любой текст после этой команды игнорируется.
СДВИГ
Заменяет каждый из параметров замены на последующий (например , %0на , на и т. д.).%1%1%2

Команда ЕСЛИ

При выходе все внешние команды отправляют код возврата (значение от 0 до 255) вызывающей программе. Большинство программ имеют определенное соглашение для своих кодов возврата (например, 0 для успешного выполнения). [6] [7] [8] [9]

Если программа была вызвана COMMAND.COM, внутренняя команда IF с ее условным выражением ERRORLEVEL может использоваться для проверки условий ошибки последней вызванной внешней программы. [ необходима ссылка ]

В COMMAND.COM внутренние команды не устанавливают новое значение. [ необходима цитата ]

Переменные

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

Перенаправление, конвейеризация и цепочка

Поскольку DOS является однозадачной операционной системой, конвейеризация достигается путем последовательного выполнения команд, перенаправления во временный файл и из него . [ необходима цитата ] COMMAND.COM не предусматривает перенаправления стандартного канала ошибок . [ необходима цитата ]

command < filename
Перенаправление стандартного ввода из файла или устройства
command > filename
Перенаправить стандартный вывод , перезаписав целевой файл, если он существует.
command >> filename
Перенаправить стандартный вывод , добавив его в целевой файл, если он существует.
command1 | command2
Направить стандартный вывод команды1 на стандартный ввод команды2
command1command2
Команды, разделенные ASCII-20 (¶, вызываемые + ), выполняются последовательно (цепочка команд). [4] Другими словами, сначала command1 выполняется до завершения, затем command2 . [4] Это недокументированная функция в COMMAND.COM MS-DOS / PC DOS 5.0 и выше. [4] Она также поддерживается COMMAND.COM семейства Windows NT, а также DR-DOS 7.07. Все версии DR-DOS COMMAND.COM уже поддерживали похожую внутреннюю функцию, использующую вместо нее восклицательный знак (!) (функция, изначально полученная из Concurrent DOS и Multiuser DOS ) - в однопользовательской строке эта функция была доступна только внутренне (во встроенных сценариях запуска, таких как "!DATE!TIME") и косвенно через параметр $T DOSKEY , чтобы избежать проблем с ! как допустимым символом имени файла. [4] 4DOS поддерживает настраиваемый разделитель командной строки ( 4DOS.INI CommandSep= или SETDOS /C), который по умолчанию равен ^. [11] COMMAND.COM в новых версиях Windows NT также поддерживает разделитель для совместимости с синтаксисом cmd в OS/2 и семействе Windows NT. [11] (cmd не поддерживает разделитель ¶.)CtrlT &

Ограничения

Обычно длина командной строки в интерактивном режиме ограничена 126 символами. [12] [13] [14] В MS-DOS 6.22 длина командной строки в интерактивном режиме ограничена 127 символами. [ необходима цитата ]

В популярной культуре

Смотрите также

Ссылки

  1. ^ "MS-DOS/COMMAND.ASM на главном сервере · microsoft/MS-DOS". GitHub .
  2. ^ "MS-DOS | Определение, особенности, важность и факты | Britannica". www.britannica.com . Получено 2024-06-26 .
  3. ^ Курт, Рюдигер; Гросс, Мартин; Голод, Генри (29 ноября 2016 г.) [2007]. «Бетрибссистем ДКП». www.robotrontechnik.de (на немецком языке). Архивировано из оригинала 3 апреля 2019 г. Проверено 28 апреля 2019 г.
  4. ^ abcdefgh Пол, Матиас Р. (30 июля 1997 г.) [1 мая 1994 г.]. NWDOS-TIPs — советы и подсказки для Novell DOS 7, с просмотром недокументированных подробностей, ошибок и обходных путей. Выпуск 157 (на немецком языке) (3-е изд.). Архивировано из оригинала 4 ноября 2016 г. Проверено 6 августа 2014 г. {{cite book}}: |work=игнорируется ( помощь ) (Примечание. Приведенная ссылка указывает на преобразованную в HTML версию NWDOSTIP.TXT, которая является частью коллекции MPDOSTIP.ZIP.) [1]
  5. ^ ab "Глава 7: Пакетная обработка". Руководство пользователя Caldera DR-DOS 7.02 . Caldera, Inc. 1998 [1993, 1997]. Архивировано из оригинала 2017-09-11 . Получено 2017-09-11 .
  6. ^ Пол, Матиас Р. (1 мая 1997 г.) [01 октября 1993 г.]. BATTIPs — Советы и рекомендации по программированию пакетных заданий (на немецком языке). Глава 7: ОШИБКА abfragen. Архивировано из оригинала 23 августа 2017 г. Проверено 23 августа 2017 г. {{cite book}}: |work=игнорируется ( помощь ) (Примечание. BATTIPS.TXT является частью MPDOSTIP.ZIP. Приведенная ссылка указывает на более старую версию файла BATTIPS.TXT, преобразованную в HTML.) [2]
  7. ^ Ауэр, Эрик; Пол, Маттиас Р.; Холл, Джим (2015-12-24) [2003-12-31]. "MS-DOS errorlevels". Архивировано из оригинала 2015-12-24.
  8. ^ Пол, Маттиас Р. (2003) [1997]. Ауэр, Эрик (ред.). "Коды выхода (уровни ошибок) утилит DOS". Архивировано из оригинала 2017-09-11 . Получено 2017-09-11 .[3]
  9. ^ Аллен, Уильям; Аллен, Линда. "Windows 95/98/ME ERRORLEVELs". Архивировано из оригинала 29-10-2005.
  10. ^ Руководство пользователя Caldera DR-DOS 7.02. Caldera, Inc. 1998 [1993, 1997]. Архивировано из оригинала 2016-11-04 . Получено 2013-08-10 .
  11. ^ абв

    [...] Несколько команд: Вы можете ввести несколько команд в одной командной строке, разделив их символом вставки [^]. Например, если вы знаете, что хотите скопировать все файлы .TXT на диск A:, а затем запустить CHKDSK, чтобы убедиться, что файловая структура диска A в хорошем состоянии, вы можете ввести следующую команду: Вы можете поместить столько команд в командную строку, сколько захотите, при условии, что общая длина командной строки не превышает 511 символов. Вы можете использовать несколько команд в псевдонимах и пакетных файлах, а также в командной строке. Если вам не нравится разделитель команд по умолчанию, вы можете выбрать другой символ с помощью команды или директивы CommandSep в 4DOS.INI . [...] (Составной символ) Этот параметр задает символ, используемый для разделения нескольких команд в одной строке. По умолчанию используется символ вставки [^]. Вы не можете использовать символы перенаправления [<>|], а также пробел, табуляцию, запятую или знак равенства в качестве разделителя команд. Разделитель команд сохраняется SETLOCAL и восстанавливается ENDLOCAL. В этом примере разделитель меняется на тильду [~]: (Можно указать либо сам символ, либо его код ASCII в виде десятичного числа, либо шестнадцатеричное число с предшествующим 0x.) [...] CommandSep = c (^): Этот символ используется для разделения нескольких команд в одной строке. [...] Совместимость специальных символов: Если вы используете два или более наших продуктов или хотите поделиться псевдонимами и пакетными файлами с пользователями других продуктов, вам необходимо знать о различиях в трех важных символах: разделителе команд [...], символе Escape [...] и символе параметра [...]. Значения по умолчанию для каждого из этих символов в каждом продукте показаны в следующей таблице: [...] Продукт, Разделитель, Параметр Escape [...] 4DOS: ^, ↑, & [...] 4OS2, 4NT, Команда Take: &, ^, $ [...] (Стрелка вверх [↑] представляет символ ASCII Ctrl-X, числовое значение 24.) [...]C:\>COPY *.TXT A: ^ CHKDSK A:SETDOS /CSETDOS /C:C:\>SETDOS /C~

    —  Братья, Хардин; Роусон, Том ; Конн, Рекс К .; Пол, Маттиас Р.; Дай, Чарльз Э.; Георгиев, Лучезар И. (27.02.2002). Онлайн-справка по 4DOS 8.00 .
  12. ^ Пол, Матиас Р. (1 июля 1997 г.) [1 января 1994 г.]. MSDOSTIPs — Советы по работе с MS-DOS 5.0-7 (на немецком языке). Архивировано из оригинала 22 августа 2017 г. Проверено 25 октября 2013 г. {{cite book}}: |work=игнорируется ( помощь ) (Примечание. MSDOSTIP.TXT является частью MPDOSTIP.ZIP, который поддерживался до 2001 года и распространялся на многих сайтах в то время. Приведенная ссылка указывает на более старую версию файла MSDOSTIP.TXT, преобразованную в HTML.) [4]
  13. ^ Пол, Матиас Р. (1 мая 1997 г.) [1 марта 1995 г.]. «Подсказки по JPSofts 4DOS 5.5b/c, 5.51, 5.52a и NDOS». МПДОСТИП (на немецком языке). Архивировано из оригинала 4 ноября 2016 г. Проверено 8 мая 2015 г.(Примечание. Приведенная ссылка указывает на HTML-конвертированную версию файла 4DOS5TIP.TXT, которая является частью коллекции MPDOSTIP.ZIP.) [5]
  14. ^ Шульман, Эндрю; Браун, Ральф Д .; Макси, Дэвид; Михельс, Рэймонд Дж.; Кайл, Джим (1994) [ноябрь 1993]. Недокументированная DOS: руководство программиста по зарезервированным функциям и структурам данных MS-DOS — расширено для включения MS-DOS 6, Novell DOS и Windows 3.1 (2-е изд.). Reading, Массачусетс, США: Addison Wesley . стр. 623, 626. ISBN 0-201-63287-X.(xviii+856+vi страниц, 3,5-дюймовая дискета) Опечатки: [6] [7]

Дальнейшее чтение

[...] все версии MS-DOS до Windows 95 [...] использовали файл COMMAND.COM в стиле COM, который имеет специальную сигнатуру в начале файла [...] запрашиваемый MS-DOS BIOS перед загрузкой оболочки, но не DR-DOS BIOS [...] COMMAND.COM [...] проверял, что он работает в "правильной" версии DOS, поэтому если бы вы загрузили их COMMAND.COM под DR-DOS, вы бы получили сообщение об ошибке "Bad version" и их COMMAND.COM завершился бы, поэтому DR-DOS [...] отобразил бы сообщение об ошибке "Bad or missing command interpreter" (если 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 [...]

Пол, Маттиас Р. (17.06.2004). "Re: Случайные блокировки с DR-DOS 7.03". Конференция FidoNet : ALT_DOS . Архивировано из оригинала 28.04.2019 . Получено 28.04.2019 .

Внешние ссылки