Jump to content

COMMAND.COM

(Перенаправлено из IF ERRORLEVEL (команда Windows) )

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

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.
command1command2
Команды, разделенные символом 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.
  1. ^ «MS-DOS/COMMAND.ASM на мастере · microsoft/MS-DOS» . Гитхаб .
  2. ^ «MS-DOS | Определение, особенности, важность и факты | Британника» . www.britanica.com . Проверено 26 июня 2024 г.
  3. ^ Курт, Рюдигер; Гросс, Мартин; Голод, Генри (29 ноября 2016 г.) [2007]. «Бетрибссистем ДКП» . www.robotrontechnik.de (на немецком языке). Архивировано из оригинала 3 апреля 2019 г. Проверено 28 апреля 2019 г.
  4. ^ Перейти обратно: а б с д и ж г час Пол, Матиас Р. (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]
  5. ^ Перейти обратно: а б «Глава 7: Пакетная обработка» . Руководство пользователя Caldera DR-DOS 7.02 . Caldera, Inc. , 1998 г. [1993, 1997]. Архивировано из оригинала 11 сентября 2017 г. Проверено 11 сентября 2017 г.
  6. ^ Пол, Матиас Р. (1 мая 1997 г.) [1 октября 1993 г.]. BATTIPs — советы и подсказки по программированию пакетных заданий (на немецком языке). Глава 7: Запрос ERRORLEVEL. Архивировано из оригинала 23 августа 2017 г. Проверено 23 августа 2017 г. {{cite book}}: |work= игнорируется ( помощь ) (Примечание. BATTIPS.TXT является частью MPDOSTIP.ZIP. Предоставленная ссылка указывает на более старую версию файла BATTIPS.TXT, преобразованную в HTML.) [2]
  7. ^ Ауэр, Эрик; Пол, Матиас Р.; Холл, Джим (24 декабря 2015 г.) [31 декабря 2003 г.]. «Уровни ошибок MS-DOS» . Архивировано из оригинала 24 декабря 2015 г.
  8. ^ Пол, Матиас Р. (2003) [1997]. Ауэр, Эрик (ред.). «Коды выхода (уровни ошибок) утилит DOS» . Архивировано из оригинала 11 сентября 2017 г. Проверено 11 сентября 2017 г. [3]
  9. ^ Аллен, Уильям; Аллен, Линда. «УРОВНИ ОШИБОК Windows 95/98/ME» . Архивировано из оригинала 29 октября 2005 г.
  10. ^ Руководство пользователя Caldera DR-DOS 7.02 . Caldera, Inc. , 1998 г. [1993, 1997]. Архивировано из оригинала 4 ноября 2016 г. Проверено 10 августа 2013 г.
  11. ^ Перейти обратно: а б с

    [...] Несколько команд: вы можете ввести несколько команд в одной командной строке, разделив их курсором [^]. Например, если вы знаете, что хотите скопировать все ваши файлы .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 .
  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 г.) [01 марта 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-е изд.). Ридинг, Массачусетс, США: Эддисон Уэсли . стр. 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 г.

[ редактировать ]
  • 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
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: dc9b8142b3b5fe16c2d2986f164ae0f5__1722222300
URL1:https://arc.ask3.ru/arc/aa/dc/f5/dc9b8142b3b5fe16c2d2986f164ae0f5.html
Заголовок, (Title) документа по адресу, URL1:
COMMAND.COM - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)