Другие имена | Командная строка MS-DOS, интерпретатор команд Windows |
---|---|
Разработчик(и) | Сиэтл Компьютерные Продукты , IBM , Microsoft , The Software Link , Datalight , Novell , Caldera |
Первоначальный выпуск | 1980 ( 1980 ) |
Написано в | язык ассемблера x86 [1] |
Операционная система | |
Платформа | 16-бит x86 |
Преемник | cmd.exe |
Тип | Интерпретатор командной строки |
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 не чувствителен к регистру, то есть команды можно вводить в любой комбинации верхнего и нижнего регистра.
ECHO ON
) или его отсутствие ( ECHO OFF
). Также отображает текст на экране ( ECHO text
).HILOAD
в DR DOS ).Управляющие структуры в основном используются внутри пакетных файлов, хотя их также можно использовать интерактивно. [5] [4]
: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
command1 ¶ command2
&
Обычно длина командной строки в интерактивном режиме ограничена 126 символами. [12] [13] [14] В MS-DOS 6.22 длина командной строки в интерактивном режиме ограничена 127 символами. [ необходима цитата ]
{{cite book}}
: |work=
игнорируется ( помощь ) (Примечание. Приведенная ссылка указывает на преобразованную в HTML версию NWDOSTIP.TXT
, которая является частью коллекции MPDOSTIP.ZIP
.) [1]{{cite book}}
: |work=
игнорируется ( помощь ) (Примечание. BATTIPS.TXT является частью MPDOSTIP.ZIP. Приведенная ссылка указывает на более старую версию файла BATTIPS.TXT, преобразованную в HTML.) [2][...] Несколько команд: Вы можете ввести несколько команд в одной командной строке, разделив их символом вставки [^]. Например, если вы знаете, что хотите скопировать все файлы .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 /C
SETDOS /C:
C:\>SETDOS /C~
— Братья, Хардин; Роусон, Том ; Конн, Рекс К .; Пол, Маттиас Р.; Дай, Чарльз Э.; Георгиев, Лучезар И. (27.02.2002). Онлайн-справка по 4DOS 8.00 .
{{cite book}}
: |work=
игнорируется ( помощь ) (Примечание. MSDOSTIP.TXT является частью MPDOSTIP.ZIP, который поддерживался до 2001 года и распространялся на многих сайтах в то время. Приведенная ссылка указывает на более старую версию файла MSDOSTIP.TXT, преобразованную в HTML.) [4]4DOS5TIP.TXT
, которая является частью коллекции MPDOSTIP.ZIP
.) [5][...] все версии 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 .