Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

command.com работает в консоли Windows , на Windows 95 (MS-DOS Prompt)

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 также использовалось программой Disk Control Program  [ de ] (DCP), производной от MS-DOS бывшего восточногерманского VEB Robotron . [2]

Совместимый командный процессор под FreeDOS иногда также называют FreeCom .

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

Режимы работы [ править ]

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

Внутренние команды [ править ]

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

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

ПЕРЕМЕНА
Управляет обработкой прерывания программы с помощью Ctrl+ Cили Ctrl+ Break.
CHCP
Отображает или изменяет текущую системную кодовую страницу .
CHDIR, CD
Изменяет текущий рабочий каталог или отображает текущий каталог.
CLS
Очищает экран.
КОПИРОВАТЬ
Копирует один файл в другой (если целевой файл уже существует, MS-DOS спрашивает, заменить ли его). (См. Также XCOPY , внешнюю команду, которая также может копировать деревья каталогов).
CTTY
Определяет устройство, которое будет использоваться для ввода и вывода.
ДАТА
Отобразите и установите дату системы.
УДАЛИТЬ, УДАЛИТЬ
Удаляет файл. При использовании в каталоге удаляет все файлы только внутри каталога. Для сравнения, внешняя команда DELTREE удаляет все подкаталоги и файлы внутри каталога, а также сам каталог.
DIR
Список файлов в указанном каталоге.
ЭХО
Переключает, отображается ли текст ( ECHO ON) или нет ( ECHO OFF). Также отображает текст на экране ( ECHO text).
ВЫХОД
Выход из COMMAND.COM и возврат в программу, которая его запустила.
LFNFOR
Включает или отключает возврат длинных имен файлов командой FOR. ( Windows 9x ).
ВЫСОКАЯ НАГРУЗКА, LH
Загружает программу в верхнюю память ( HILOADв DR DOS ).
ЗАМОК
Позволяет внешним программам выполнять низкоуровневый дисковый доступ к тому. ( Только MS-DOS 7.1 и Windows 9x )
МКДИР, д.м.н.
Создает новый каталог.
ДОРОЖКА
Отображает или изменяет значение переменной среды PATH, которая контролирует места, где COMMAND.COM будет искать исполняемые файлы.
ПОДСКАЗКА
Отображает или изменяет значение переменной среды PROMPT, которая управляет внешним видом приглашения.
ПЕРЕИМЕНОВАТЬ, REN
Переименовывает файл или каталог.
РМДИР, РД
Удаляет пустой каталог.
НАБОР
Устанавливает значение переменной окружения ; без аргументов показывает все определенные переменные среды.
ВРЕМЯ
Отображение и установка времени системы.
TRUENAME
Отображение полностью развернутого физического имени файла, разрешающего сопоставления логических файловых систем ASSIGN , JOIN и SUBST . [3]
ТИП
Отобразите содержимое файла на консоли.
РАЗБЛОКИРОВАТЬ
Отключает низкоуровневый доступ к диску. ( Только MS-DOS 7.1 и Windows 9x )
VER
Отображает версию операционной системы .
ПРОВЕРЯТЬ
Включить или отключить проверку записи для файлов.
VOL
Показывает информацию о томе.

Команды пакетного файла [ править ]

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

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

Команда IF [ править ]

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

Если программа была вызвана из 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 также поддерживает ряд системной информации переменных , [4] [9] [3] особенность ранее найдены в 4DOS 3.00 и выше [10] , а также как и в многопользовательской DOS , [3] , хотя большинство из поддерживаемых имен переменных различаются.

Перенаправление, конвейеры и цепочки [ править ]

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

command < filename
Перенаправить стандартный ввод из файла или устройства
command > filename
Перенаправить стандартный вывод , перезаписав целевой файл, если он существует.
command >> filename
Перенаправить стандартный вывод , добавив в целевой файл, если он существует.
command1 | command2
Труба стандартный вывод из command1 на стандартный ввод из команды команда2
command1command2
Команды, разделенные символом ASCII-20 (¶, вызывается знаком Ctrl+ T), выполняются последовательно (цепочка команд). [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, однако, не поддерживает разделитель ¶.)

Ограничения [ править ]

Длина командной строки в интерактивном режиме ограничена 126 символами. [11] [12] [13]

В популярной культуре [ править ]

Сообщение «Загрузка COMMAND.COM» можно увидеть в HUD- представлении Терминатора и во внутреннем окне просмотра 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 (имеет аналогичный командный процессор, также называемый COMMAND.COM)
  • Переходная программная область (TPA) (область, доступная для использования работающим приложением или переходной частью COMMAND.COM)
  • SpartaDOS X (аналогичная реализация для компьютеров Atari)

Ссылки [ править ]

  1. ^ MS-DOS / COMMAND.ASM на главном сервере · microsoft / MS-DOS · GitHub
  2. ^ Курт, Рюдигер; Грос, Мартин; Голод, Генри (2016-11-29) [2007]. «Betriebssystem DCP» . www.robotrontechnik.de (на немецком языке). Архивировано 3 апреля 2019 года . Проверено 28 апреля 2019 .
  3. ^ a b c d e f g h Пол, Маттиас Р. (1997-07-30) [1994-05-01]. NWDOS-TIPs - Советы и приемы для Novell DOS 7, с подробностями, исправлениями и обходными путями . MPDOSTIP . Выпуск 157 (на немецком языке) (3-е изд.). Архивировано из оригинала на 2016-11-04 . Проверено 6 августа 2014 .(NB. Приведенная ссылка указывает на преобразованную в HTML версию NWDOSTIP.TXT, которая является частью MPDOSTIP.ZIPколлекции.) [1]
  4. ^ a b «Глава 7: Пакетная обработка» . Caldera DR-DOS 7.02 Руководство пользователя . Caldera, Inc. 1998 [1993, 1997]. Архивировано из оригинала на 2017-09-11 . Проверено 11 сентября 2017 .
  5. ^ Пол, Маттиас Р. (1997-05-01) [1993-10-01]. BATTIPs - Советы и приемы по программированию пакетных заданий . MPDOSTIP (на немецком языке). Капитель 7: УРОВЕНЬ ОШИБОК abfragen. Архивировано 23 августа 2017 года . Проверено 23 августа 2017 .(NB. BATTIPS.TXT является частью MPDOSTIP.ZIP. Приведенная ссылка указывает на более старую версию файла BATTIPS.TXT, преобразованную в HTML.) [2]
  6. ^ Ауэр, Эрик; Пол, Маттиас Р .; Холл, Джим (2015-12-24) [2003-12-31]. «Уровни ошибок MS-DOS» . Архивировано из оригинала на 2015-12-24.
  7. ^ Пол, Маттиас Р. (2003) [1997]. Ауэр, Эрик (ред.). «Коды выхода (уровни ошибок) утилит DOS» . Архивировано из оригинала на 2017-09-11 . Проверено 11 сентября 2017 . [3]
  8. ^ Аллен, Уильям; Аллен, Линда. "УРОВНИ ОШИБОК Windows 95/98 / ME" . Архивировано из оригинала на 2005-10-29.
  9. ^ Руководство пользователя Caldera DR-DOS 7.02 . Caldera, Inc. 1998 [1993, 1997]. Архивировано из оригинала на 2016-11-04 . Проверено 10 августа 2013 .
  10. ^ a b c Братья, Хардин; Роусон, Том ; Конн, Рекс К .; Пол, Маттиас Р .; Краситель, Чарльз Э .; Георгиев, Лучезар И. (27.02.2002). Онлайн-справка по 4DOS 8.00 . […] Несколько команд: вы можете ввести несколько команд в одной командной строке, разделенных символом вставки [^]. Например, если вы знаете, что хотите скопировать все свои файлы .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-символ […] и параметр-символ […]. Значения по умолчанию каждого из этих символов в каждом продукте показаны в следующей таблице: […] Продукт, Разделитель, Параметр выхода […] 4DOS: ^, ↑, & […] 4OS2, 4NT, Take Command: &, ^ , $ […] (Стрелка вверх [↑] представляет символ ASCII Ctrl-X, числовое значение 24.) […]
  11. ^ Пол, Маттиас Р. (1997-07-01) [1994-01-01]. MSDOSTIPs - Советы по использованию MS-DOS 5.0-7 . MPDOSTIP (на немецком языке). Архивировано 22 августа 2017 года . Проверено 25 октября 2013 .(NB. MSDOSTIP.TXT является частью MPDOSTIP.ZIP, поддерживавшейся до 2001 г. и распространявшейся в то время на многих сайтах. Приведенная ссылка указывает на более старую версию файла MSDOSTIP.TXT, преобразованную в HTML.) [4]
  12. ^ Пол, Маттиас Р. (1997-05-01) [1995-03-01]. "Рекомендации по JPSofts 4DOS 5.5b / c, 5.51, 5.52a и NDOS" . MPDOSTIP (на немецком языке). Архивировано 4 ноября 2016 года . Проверено 8 мая 2015 .(NB. Предоставленная ссылка указывает на HTML-преобразованную версию 4DOS5TIP.TXTфайла, которая является частью MPDOSTIP.ZIPколлекции.) [5]
  13. ^ Шульман, Эндрю; Браун, Ральф Д .; Макси, Дэвид; Michels, Raymond J .; Кайл, Джим (1994) [ноябрь 1993]. Недокументированная DOS: Руководство программиста по зарезервированным функциям и структурам данных MS-DOS - расширено за счет включения MS-DOS 6, Novell DOS и Windows 3.1 (2-е изд.). Ридинг, Массачусетс, США: Аддисон Уэсли . стр. 623, 626. ISBN 0-201-63287-X.(xviii + 856 + vi стр., 3,5-дюймовая дискета) Исправления: [6] [7]

Дальнейшее чтение [ править ]

  • Купер, Джим (2001). Специальная версия с использованием MS-DOS 6.22 (3-е изд.). Que Publishing . ISBN 978-0-78972573-8.
  • Волвертон, Ван (1990). Команды MS-DOS: Краткий справочник Microsoft (4-е пересмотренное издание). Microsoft Press . ISBN 978-1-55615289-4.
  • Пол, Матиас Р. (17.06.2004). «Re: Случайные зависания с DR-DOS 7.03» . Конференция FidoNet : ALT_DOS . Архивировано из оригинала на 2019-04-28 . Проверено 28 апреля 2019 .[…] Все версии 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 […] КОМАНДА.COM внутри стал файлом в стиле EXE, поэтому нет волшебной […] сигнатуры […] для проверки […], поэтому DR-DOS не может исключить несовместимый COMMAND.COM. Кроме того, их COMMAND.COM больше не проверяет версию, но […] не работает под DR-DOS […] просто дает сбой […] PC DOS COMMAND.COM отлично работает под DR-DOS […] [8] [9]