COMMAND.COM
![]() COMMAND.COM в Windows 10 | |
Другие имена | MS-DOS Подсказка, Интерпретатор команд Windows |
---|---|
Разработчик(и) | Компьютерные продукты Сиэтла , IBM , Microsoft , The Software Link , Datalight , Novell , Caldera |
Первоначальный выпуск | 1980 год |
Написано в | x86 язык ассемблера [ 1 ] |
Операционная система | |
Платформа | 16-битный x86 |
Преемник | cmd.exe |
Тип | Интерпретатор командной строки |

COMMAND.COM — это интерпретатор командной строки по умолчанию для MS-DOS , Windows 95 , Windows 98 и Windows Me . В случае DOS это также пользовательский интерфейс по умолчанию. Он выполняет дополнительную роль обычной первой программы, запускаемой после загрузки ( процесс инициализации ). Как оболочка 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 также использовалось программой управления дисками. [ из ] (DCP), производная MS-DOS от бывшего восточногерманского VEB Robotron . [ 3 ]
COMMAND.COM — программа для DOS. Программы, запускаемые с COMMAND.COM, представляют собой программы DOS, которые используют DOS API для взаимодействия с дисковой операционной системой. Совместимый командный процессор FreeDOS иногда также называют FreeCom .
Режимы работы
[ редактировать ]COMMAND.COM как оболочка имеет два различных режима работы. Первый — интерактивный режим , в котором пользователь вводит команды, которые затем немедленно выполняются. Второй — пакетный режим , который выполняет предопределённую последовательность команд, хранящуюся в виде текстового файла с расширением .BAT .
Внутренние команды
[ редактировать ]Внутренние команды — это команды, хранящиеся непосредственно внутри двоичного файла COMMAND.COM. Таким образом, они всегда доступны, но могут быть выполнены только непосредственно из командного интерпретатора.
Все команды выполняются после ↵ Enter клавиша нажимается в конце строки. COMMAND.COM не чувствителен к регистру, то есть команды можно вводить в любом сочетании верхнего и нижнего регистра.
- ПЕРЕРЫВ
- Управляет обработкой прерывания программы с помощью Ctrl+ C или Ctrl+ Break.
- CHCP
- Отображает или изменяет текущую кодовую страницу системы .
- ЧДИР, CD
- Изменяет текущий рабочий каталог или отображает текущий каталог.
- ЦЛС
- Очищает экран.
- КОПИРОВАТЬ
- Копирует один файл в другой (если файл назначения уже существует, MS-DOS спрашивает, заменить ли его). (См. также XCOPY — внешняя команда, которая также может копировать деревья каталогов).
- CTTY
- Определяет устройство, которое будет использоваться для ввода и вывода.
- ДАТА
- Отображение и установка даты системы.
- УДАЛИТЬ, СТЕРЕТЬ
- Удаляет файл. При использовании в каталоге удаляет все файлы только внутри каталога. Для сравнения, внешняя команда DELTREE удаляет все подкаталоги и файлы внутри каталога, а также сам каталог.
- ТЫ
- Перечисляет файлы в указанном каталоге.
- ЭХО
- Переключает, отображается ли текст (
ECHO ON
) или нет (ECHO OFF
). Также отображает текст на экране (ECHO text
). - ВЫХОД
- Выход из COMMAND.COM и возврат в программу, которая его запустила.
- ЛФНФОР
- Включает или отключает возврат длинных имен файлов по команде FOR. ( Виндовс 9х ). [ нужна ссылка ]
- ВЫСОКАЯ НАГРУЗКА, ЛЕВ.
- Загружает программу в верхнюю память (
HILOAD
в ДР ДОС ). - ЗАМОК
- Позволяет внешним программам выполнять низкоуровневый доступ к диску тома. ( только 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 могут иметь четыре типа переменных:
- Переменные среды : они имеют Форма %VARIABLE% связана со значениями с помощью инструкции SET. До DOS 3 COMMAND.COM расширял переменные среды только в пакетном режиме; то есть не в интерактивном режиме из командной строки. [ нужна ссылка ]
- Параметры замены : Они имеют форму %0 , %1 ... %9 и изначально содержат имя команды и первые девять параметров командной строки, передаваемых в сценарий (например, если вызывающая команда была myscript.bat John Doe, затем %0 — это "myscript.bat", %1 — это «Джон» и %2 — «Доу»). Параметры справа от девятого можно сопоставить с диапазоном с помощью оператора SHIFT. [ нужна ссылка ]
- Переменные цикла. Используемые в циклах, они имеют %%a формат при запуске в пакетных файлах. Эти переменные определяются исключительно внутри конкретного оператора FOR и перебирают определенный набор значений, определенных в этом операторе FOR. [ нужна ссылка ]
- В Novell DOS 7 , OpenDOS 7.01 , DR-DOS 7.02 и выше COMMAND.COM также поддерживает ряд переменных системной информации , [ 5 ] [ 10 ] [ 4 ] функция, ранее встречавшаяся в 4DOS 3.00 и выше. [ 11 ] а также в многопользовательском DOS , [ 4 ] хотя большинство поддерживаемых имен переменных различаются.
Перенаправление, конвейеризация и цепочка
[ редактировать ]Поскольку DOS является однозадачной операционной системой, конвейеризация достигается путем последовательного выполнения команд с перенаправлением во временный файл и из него . [ нужна ссылка ] COMMAND.COM не предусматривает перенаправления стандартного канала ошибок . [ нужна ссылка ]
command < filename
- Перенаправление стандартного ввода из файла или устройства
command > filename
- Перенаправить стандартный вывод , перезаписав целевой файл, если он существует.
command >> filename
- Перенаправить стандартный вывод , добавив его в целевой файл, если он существует.
command1 | command2
- Перенаправить стандартный вывод команды 1 на стандартный ввод команды 2.
command1 ¶ command2
- Команды, разделенные символом ASCII-20 (¶, вызываются Ctrl+ T) выполняются последовательно (цепочка команд). [ 4 ] Другими словами, сначала команда1 выполняется до завершения, затем команда2 . [ 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»), и косвенно через DOSKEY, параметр $T чтобы избежать проблем с ! как допустимый символ имени файла. [ 4 ] 4DOS поддерживает настраиваемый разделитель командной строки ( 4DOS.INI CommandSep= или SETDOS /C), который по умолчанию равен ^. [ 11 ] COMMAND.COM в новых версиях Windows NT также поддерживает
&
разделитель для совместимости с синтаксисом cmd в OS/2 и семействе Windows NT. [ 11 ] (cmd не поддерживает разделитель ¶.)
Ограничения
[ редактировать ]Обычно длина командной строки в интерактивном режиме ограничена 126 символами. [ 12 ] [ 13 ] [ 14 ] В MS-DOS 6.22 длина командной строки в интерактивном режиме ограничена 127 символами. [ нужна ссылка ]
В популярной культуре
[ редактировать ]- Сообщение «Загрузка COMMAND.COM» можно увидеть в HUD Терминатора , и во внутреннем окне просмотра Робокопа когда он перезагружается. [ нужна ссылка ]
- В анимационном детском сериале ReBoot , действие которого происходит внутри компьютеров, лидера системы (эквивалент города) зовут COMMAND.COM. [ нужна ссылка ]
См. также
[ редактировать ]- Список команд DOS
- Сравнение командных оболочек
- cmd.exe — интерпретатор командной строки в различных системах Windows и OS/2.
- — запускает командный процессор первым процессом
- SHELL (директива CONFIG.SYS) — для переопределения командного процессора по умолчанию.
- COMSPEC (переменная среды) — устанавливается COMMAND.COM для перезагрузки временной части самого себя.
- CMDLINE (переменная среды) — устанавливается COMMAND.COM для передачи длинных командных строк во внешние программы.
- — замена командных процессоров сторонних производителей
- DOSSHELL / ViewMAX — альтернативные оболочки DOS
- — иметь аналогичные командные процессоры без имени COMMAND.COM
- PC-MOS/386 — имеет аналогичный командный процессор, также называемый COMMAND.COM.
- Область временной программы — память, доступная для использования либо запущенным приложением, либо временной частью COMMAND.COM.
- SpartaDOS X — аналогичная реализация для компьютеров Atari.
Ссылки
[ редактировать ]- ^ «MS-DOS/COMMAND.ASM на мастере · microsoft/MS-DOS» . Гитхаб .
- ^ «MS-DOS | Определение, особенности, важность и факты | Британника» . www.britanica.com . Проверено 26 июня 2024 г.
- ^ Курт, Рюдигер; Гросс, Мартин; Голод, Генри (29 ноября 2016 г.) [2007]. «Бетрибссистем ДКП» . www.robotrontechnik.de (на немецком языке). Архивировано из оригинала 3 апреля 2019 г. Проверено 28 апреля 2019 г.
- ^ Перейти обратно: а б с д и ж г час Пол, Матиас Р. (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] - ^ Перейти обратно: а б «Глава 7: Пакетная обработка» . Руководство пользователя Caldera DR-DOS 7.02 . Caldera, Inc. , 1998 г. [1993, 1997]. Архивировано из оригинала 11 сентября 2017 г. Проверено 11 сентября 2017 г.
- ^ Пол, Матиас Р. (1 мая 1997 г.) [1 октября 1993 г.]. BATTIPs — советы и подсказки по программированию пакетных заданий (на немецком языке). Глава 7: Запрос ERRORLEVEL. Архивировано из оригинала 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 находится в хорошем состоянии, вы можете ввести следующую команду:
C:\>COPY *.TXT A: ^ CHKDSK A:
Вы можете поместить в командную строку столько команд, сколько пожелаете, при условии, что общая длина командной строки не превышает 511 символов. Вы можете использовать несколько команд в псевдонимах и пакетных файлах, а также в командной строке. Если вам не нравится использовать разделитель команд по умолчанию, вы можете выбрать другой символ, используяSETDOS /C
или директиву CommandSep в 4DOS.INI . [...]SETDOS /C:
(Составной символ) Этот параметр задает символ, используемый для разделения нескольких команд в одной строке. По умолчанию используется каретка [^]. В качестве разделителя команд нельзя использовать символы перенаправления [<>|], пробел, табуляцию, запятую или знак равенства. Разделитель команд сохраняется с помощью SETLOCAL и восстанавливается с помощью ENDLOCAL. В этом примере разделитель заменяется на тильду [~]:C:\>SETDOS /C~
(Вы можете указать либо сам символ, либо его код ASCII в виде десятичного числа или шестнадцатеричного числа, которому предшествует 0x.) [...] CommandSep = c (^): это символ, используемый для разделения нескольких команд на та же линия. [...] Совместимость специальных символов: Если вы используете два или более наших продуктов или хотите использовать псевдонимы и командные файлы для пользователей разных продуктов, вам необходимо знать о различиях в трех важных символах: Команда Разделитель [...], escape-символ [...] и символ параметра [...]. Значения по умолчанию для каждого из этих символов в каждом продукте показаны в следующей таблице: [...] Продукт, Разделитель, Escape-параметр [...] 4DOS: ^, ↑ и [...] 4OS2, 4NT, Возьмите команду: &, ^, $ [...] (Стрелка вверх [↑] представляет символ ASCII Ctrl-X, числовое значение 24.) [...]— Братья Хардин; Роусон, Том ; Конн, Рекс К .; Пол, Матиас Р.; Дай, Чарльз Э.; Георгиев, Лучезар И. (27 февраля 2002 г.). Онлайн-справка по 4DOS 8.00 . - ^ Пол, Матиас Р. (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 г.) [01 марта 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, который имеет специальную подпись в начале файла, [...] запрашиваемого MS-DOS BIOS. прежде чем он загрузит оболочку, но не с помощью 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 [...] просто вылетает [...] компьютер DOS COMMAND.COM прекрасно работает под DR-DOS [...]
Пол, Матиас Р. (17 июня 2004 г.). «Re: Случайные зависания в DR-DOS 7.03» . Конференция FidoNet : ALT_DOS . Архивировано из оригинала 28 апреля 2019 г. Проверено 28 апреля 2019 г.
- Купер, Джим (2001). Специальное издание с использованием MS-DOS 6.22 (3-е изд.). Издательство Que . ISBN 978-0-78972573-8 .
- Вулвертон, Ван (1990). Команды MS-DOS: Краткий справочник Microsoft (4-е исправленное издание). Майкрософт Пресс . ISBN 978-1-55615289-4 .
- Архивировано 1 мая 2019 г. на archive.today.
- Архивировано 28 апреля 2019 г. на archive.today.
Внешние ссылки
[ редактировать ]- COMMAND1.ASM на GitHub — исходный код COMMAND.COM версии A067, выпущенный Microsoft как часть MS-DOS 4.0.
- COMMAND.ASM на GitHub — исходный код COMMAND.COM версии 2.11, выпущенный Microsoft как часть MS-DOS 2.0.
- COMMAND.ASM на GitHub — исходный код COMMAND.COM версии 1.17, выпущенный Microsoft как часть MS-DOS 1.25.
- FreeCom - COMMAND.COM реализация FreeDOS