Командная строка по умолчанию для MS-DOS и Windows 9x.
COMMAND.COM — это интерпретатор командной строки по умолчанию для MS-DOS , Windows 95 , Windows 98 и Windows Me . В случае DOS это также пользовательский интерфейс по умолчанию. Он выполняет дополнительную роль обычной первой программы, запускаемой после загрузки (процесс инициализации), следовательно, отвечает за настройку системы путем запуска файла конфигурации AUTOEXEC.BAT и является предком всех процессов.
Совместимый командный процессор FreeDOS иногда также называют FreeCom .
COMMAND.COM — программа для DOS. Программы, запускаемые с COMMAND.COM, представляют собой программы DOS, которые используют DOS API для связи с дисковой операционной системой.
Режимы работы
COMMAND.COM как оболочка имеет два различных режима работы. Первый — интерактивный режим , в котором пользователь вводит команды, которые затем немедленно выполняются. Второй — пакетный режим , который выполняет предопределённую последовательность команд, хранящуюся в виде текстового файла с расширением .BAT .
Внутренние команды
Внутренние команды — это команды, хранящиеся непосредственно внутри двоичного файла COMMAND.COM. Таким образом, они всегда доступны, но могут быть выполнены только непосредственно из командного интерпретатора.
Все команды выполняются после ↵ Enterнажатия клавиши в конце строки. COMMAND.COM не чувствителен к регистру, то есть команды можно вводить в любом сочетании верхнего и нижнего регистра.
Копирует один файл в другой (если файл назначения уже существует, MS-DOS спрашивает, заменить ли его). (См. также XCOPY — внешняя команда, которая также может копировать деревья каталогов).
CTTY
Определяет устройство, которое будет использоваться для ввода и вывода.
Удаляет файл. При использовании в каталоге удаляет все файлы только внутри каталога. Для сравнения, внешняя команда DELTREE удаляет все подкаталоги и файлы внутри каталога, а также сам каталог.
Заменяет каждый из заменяемых параметров на последующий (например , %0на , на и т.д.).%1%1%2
ЕСЛИ команда
При выходе все внешние команды передают код возврата (значение от 0 до 255) вызывающей программе. Большинство программ имеют определенное соглашение о кодах возврата (например, 0 для успешного выполнения). [5] [6] [7] [8]
Если программа была вызвана COMMAND.COM, внутренняя команда IF с условием ERRORLEVEL может использоваться для проверки условий ошибки последней вызванной внешней программы.
В COMMAND.COM внутренние команды не устанавливают новое значение.
Переменные
Пакетные файлы COMMAND.COM могут иметь четыре типа переменных:
Переменные среды : они имеют форму %VARIABLE% и связаны со значениями с помощью инструкции SET. До DOS 3 COMMAND.COM расширял переменные среды только в пакетном режиме; то есть не в интерактивном режиме из командной строки. [ нужна цитата ]
Параметры замены : они имеют форму %0 , %1 ... %9 и изначально содержат имя команды и первые девять параметров командной строки, передаваемых в сценарий (например, если вызывающая команда была , то %0 — это " myscript.bat», %1 — «Джон», а %2 — «Доу»). Параметры справа от девятого можно сопоставить с диапазоном с помощью оператора SHIFT.myscript.bat John Doe
Переменные цикла: используются в циклах. При запуске в пакетных файлах они имеют формат %%a . Эти переменные определяются исключительно внутри конкретного оператора FOR и перебирают определенный набор значений, определенных в этом операторе FOR.
Поскольку DOS является однозадачной операционной системой, конвейеризация достигается путем последовательного запуска команд с перенаправлением во временный файл и из него . COMMAND.COM не предусматривает перенаправления стандартного канала ошибок .
Команды, разделенные символом ASCII-20 (¶, вызываются + ), выполняются последовательно (цепочка команд). [3] Другими словами, первая команда1 выполняется до завершения, затем команда2 . [3] Это недокументированная функция COMMAND.COM в MS-DOS / PC DOS 5.0 и выше. [3] Он также поддерживается COMMAND.COM семейства Windows NT, а также DR-DOS 7.07. Все версии DR-DOS COMMAND.COM уже поддерживали аналогичную внутреннюю функцию с использованием вместо нее восклицательного знака (!) (функция, первоначально полученная из Concurrent DOS и Multiuser DOS ) — в однопользовательской линейке эта функция была доступна только внутри (в встроенные сценарии запуска, такие как «!DATE!TIME»), и косвенно через параметр $T DOSKEY , чтобы избежать проблем с ! как допустимый символ имени файла. [3] 4DOS поддерживает настраиваемый разделитель командной строки ( 4DOS.INI CommandSep= или SETDOS /C), который по умолчанию равен ^. [10] COMMAND.COM в новых версиях Windows NT также поддерживает разделитель для совместимости с синтаксисом cmd в OS/2 и семействе Windows NT. [10] (cmd не поддерживает разделитель ¶.)CtrlT&
Ограничения
Обычно длина командной строки в интерактивном режиме ограничена 126 символами. [11] [12] [13] В MS-DOS 6.22 длина командной строки в интерактивном режиме ограничена 127 символами.
В популярной культуре
Сообщение «Загрузка COMMAND.COM» можно увидеть в HUD Терминатора и во внутреннем окне просмотра Робокопа , когда он перезагружается.
В компьютерном анимационном детском сериале «ReBoot» , действие которого происходит внутри компьютеров, лидера системы (эквивалент города) называют COMMAND.COM.
(имеют аналогичные командные процессоры без имени COMMAND.COM)
PC-MOS/386 (имеет аналогичный командный процессор, также называемый COMMAND.COM)
Временная программная область (TPA) (область, доступная для использования запущенным приложением или временной частью COMMAND.COM)
SpartaDOS X (аналогичная реализация для компьютеров Atari)
Рекомендации
^ MS-DOS/COMMAND.ASM в мастере · microsoft/MS-DOS · GitHub
^ Курт, Рюдигер; Гросс, Мартин; Голод, Генри (29 ноября 2016 г.) [2007]. «Бетрибссистем ДКП». www.robotrontechnik.de (на немецком языке). Архивировано из оригинала 3 апреля 2019 г. Проверено 28 апреля 2019 г.
^ abcdefgh Пол, Матиас Р. (30 июля 1997 г.) [1 мая 1994 г.]. NWDOS-TIPs — советы и подсказки для Novell DOS 7, с просмотром недокументированных подробностей, ошибок и обходных путей. Выпуск 157 (на немецком языке) (3-е изд.). Архивировано из оригинала 4 ноября 2016 г. Проверено 6 августа 2014 г.{{cite book}}: |work=игнорируется ( help ) (Примечание. Предоставленная ссылка указывает на преобразованную в HTML версию файла NWDOSTIP.TXT, которая является частью MPDOSTIP.ZIPколлекции.) [1]
^ ab «Глава 7: Пакетная обработка». Руководство пользователя Caldera DR-DOS 7.02 . Caldera, Inc., 1998 г. [1993, 1997]. Архивировано из оригинала 11 сентября 2017 г. Проверено 11 сентября 2017 г.
^ Пол, Матиас Р. (1 мая 1997 г.) [01 октября 1993 г.]. BATTIPs — Советы и рекомендации по программированию пакетных заданий (на немецком языке). Глава 7: ОШИБКА abfragen. Архивировано из оригинала 23 августа 2017 г. Проверено 23 августа 2017 г.{{cite book}}: |work=игнорируется ( помощь ) (Примечание. BATTIPS.TXT является частью MPDOSTIP.ZIP. Предоставленная ссылка указывает на более старую версию файла BATTIPS.TXT, преобразованную в HTML.) [2]
^ Ауэр, Эрик; Пол, Матиас Р.; Холл, Джим (24 декабря 2015 г.) [31 декабря 2003 г.]. «Уровни ошибок MS-DOS». Архивировано из оригинала 24 декабря 2015 г.
^ Пол, Матиас Р. (2003) [1997]. Ауэр, Эрик (ред.). «Коды выхода (уровни ошибок) утилит DOS». Архивировано из оригинала 11 сентября 2017 г. Проверено 11 сентября 2017 г.[3]
^ Аллен, Уильям; Аллен, Линда. «Windows 95/98/ME ОШИБКИ». Архивировано из оригинала 29 октября 2005 г.
^ Руководство пользователя Caldera DR-DOS 7.02. Caldera, Inc., 1998 г. [1993, 1997]. Архивировано из оригинала 4 ноября 2016 г. Проверено 10 августа 2013 г.
^ абв
[…] Несколько команд: вы можете ввести несколько команд в одной командной строке, разделив их курсором [^]. Например, если вы знаете, что хотите скопировать все ваши файлы .TXT на диск A:, а затем запустить CHKDSK, чтобы убедиться, что файловая структура диска A находится в хорошем состоянии, вы можете ввести следующую команду: Вы можете ввести столько команд, сколько нужно . в командной строке по вашему желанию, если общая длина командной строки не превышает 511 символов. Вы можете использовать несколько команд в псевдонимах и пакетных файлах, а также в командной строке. Если вам не нравится использовать разделитель команд по умолчанию, вы можете выбрать другой символ с помощью команды или директивы CommandSep в 4DOS.INI . […] (Составной символ) Эта опция устанавливает символ, используемый для разделения нескольких команд в одной строке. По умолчанию используется каретка [^]. В качестве разделителя команд нельзя использовать символы перенаправления [<>|], пробел, табуляцию, запятую или знак равенства. Разделитель команд сохраняется с помощью SETLOCAL и восстанавливается с помощью ENDLOCAL. В этом примере разделитель заменяется на тильду [~]: (Вы можете указать либо сам символ, либо его код ASCII в виде десятичного числа, либо шестнадцатеричного числа, которому предшествует 0x.) […] CommandSep = c (^): Это — это символ, используемый для разделения нескольких команд в одной строке. […] Совместимость специальных символов: если вы используете два или более наших продуктов или хотите использовать псевдонимы и командные файлы совместно с пользователями разных продуктов, вам необходимо учитывать различия в трех важных символах: разделитель команд [ …], escape-символ […] и символ параметра […]. Значения по умолчанию каждого из этих символов в каждом продукте показаны в следующей таблице: […] Продукт, Разделитель, Escape-параметр […] 4DOS: ^, ↑, & […] 4OS2, 4NT, Take Command: &, ^ , $ […] (Стрелка вверх [↑] представляет символ ASCII Ctrl-X, числовое значение 24.) […]C:\>COPY *.TXT A: ^ CHKDSK A:SETDOS /CSETDOS /C:C:\>SETDOS /C~
^ Пол, Матиас Р. (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]
^ Пол, Матиас Р. (1 мая 1997 г.) [1 марта 1995 г.]. «Подсказки по JPSofts 4DOS 5.5b/c, 5.51, 5.52a и NDOS». МПДОСТИП (на немецком языке). Архивировано из оригинала 4 ноября 2016 г. Проверено 8 мая 2015 г.(Примечание. Предоставленная ссылка указывает на преобразованную в HTML версию файла 4DOS5TIP.TXT, которая является частью MPDOSTIP.ZIPколлекции.) [5]
^ Шульман, Эндрю; Браун, Ральф Д .; Макси, Дэвид; Михелс, Раймонд Дж.; Кайл, Джим (1994) [ноябрь 1993 г.]. Недокументированная DOS: Руководство программиста по зарезервированным функциям и структурам данных MS-DOS - расширено и включает MS-DOS 6, Novell DOS и Windows 3.1 (2-е изд.). Ридинг, Массачусетс, США: Эддисон Уэсли . стр. 623, 626. ISBN.0-201-63287-Х.(xviii+856+vi страниц, 3,5-дюймовая дискета) Исправления: [6][7]
дальнейшее чтение
[…] все версии MS-DOS до Windows 95 […] использовали файл COMMAND.COM в стиле COM, который имеет специальную подпись в начале файла […], запрашиваемую BIOS MS-DOS перед загрузкой оболочки, но не с помощью BIOS DR-DOS […] 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 […]
Пол, Матиас Р. (17 июня 2004 г.). «Re: Случайные зависания в DR-DOS 7.03». Конференция FidoNet : ALT_DOS . Архивировано из оригинала 28 апреля 2019 г. Проверено 28 апреля 2019 г.