cmd.exe

Программа командной строки

Командная строка (cmd.exe)
Другие именаПроцессор команд Windows
Разработчик(и)Участники Microsoft , IBM , ReactOS
Первоначальный выпускДекабрь 1987 г .; 36 лет назад ( 1987-12 )
Операционная система
ПлатформаIA-32 , x86-64 , ARM (и исторически DEC Alpha , MIPS , PowerPC и Itanium )
ПредшественникКОМАНДА.COM
ТипИнтерпретатор командной строки

Командная строка , также известная как cmd.exe или cmd , является интерпретатором командной строки по умолчанию для операционных систем OS/2 , [1] eComStation , ArcaOS , Microsoft Windows ( семейство Windows NT и семейство Windows CE ) и ReactOS [2] . В Windows CE .NET 4.2 , [3] Windows CE 5.0 [4] и Windows Embedded CE 6.0 [5] она называется оболочкой командного процессора . Ее реализации различаются в разных операционных системах, но поведение и базовый набор команд одинаковы. cmd.exe является аналогом COMMAND.COM в системах DOS и Windows 9x и аналогична оболочкам Unix, используемым в Unix-подобных системах. Первоначальная версия cmd.exe для Windows NT была разработана Терезой Стоуэлл. [6] Windows CE 2.11 была первым выпуском встроенной Windows, поддерживающим консоль и версию cmd.exe для Windows CE . [7] Реализация cmd.exe в ReactOS основана на FreeCOM, интерпретаторе командной строки FreeDOS . [2]

Операция

cmd.exe взаимодействует с пользователем через интерфейс командной строки . В Windows этот интерфейс реализован через консоль Win32 . cmd.exe может использовать возможности, доступные собственным программам его собственной платформы. Например, в OS/2 и Windows он может использовать реальные каналы в командных конвейерах, позволяя обеим сторонам конвейера работать одновременно. В результате можно перенаправить стандартный поток ошибок . ( COMMAND.COM использует временные файлы и запускает две стороны последовательно, одну за другой.)

Несколько команд можно обрабатывать в одной командной строке, используя разделитель команд && . [8]

При использовании этого разделителя в cmd.exe Windows каждая команда должна быть выполнена успешно для выполнения следующих команд. Например:

C:\> CommandA && CommandB && CommandC

В приведенном выше примере CommandB будет выполнена только в случае успешного завершения CommandA , а выполнение CommandC зависит от успешного завершения CommandB . Для обработки последующих команд, даже если предыдущая команда выдает ошибку, следует использовать разделитель команд & . [9] Например:

C:\> CommandA , CommandB и CommandC

В Windows XP или более поздней версии максимальная длина строки, которую можно использовать в командной строке, составляет 8191 (2 13 -1) символ. В более ранних версиях, таких как Windows 2000 или Windows NT 4.0 , максимальная длина строки составляет 2047 (2 11 -1) символов. Это ограничение включает командную строку, отдельные переменные среды , которые наследуются другими процессами , и все расширения переменных среды. [10]

Кавычки требуются для следующих специальных символов : [8]

& < > [ ] { } ^ = ; ! ' + , ` ~

и пустое пространство.

Внутренние команды

ОС/2

Окно OS/2 (cmd.exe) в Microsoft OS/2 версии 1.3

Ниже приведен список внутренних команд cmd.exe Microsoft OS/2 : [11]

Семейство Windows NT

cmd.exe в Windows 11

Следующий список внутренних команд поддерживается cmd.exe в Windows NT и более поздних версиях: [12]

Windows CE

Pocket CMD v 3.0 (cmd.exe) на Windows CE 3.0

Следующий список команд поддерживается cmd.exe в Windows CE .NET 4.2, [13] Windows CE 5.0 [14] и Windows Embedded CE 6.0: [15]

  • атрибут
  • вызов
  • компакт-диск
  • чдир
  • клс
  • копия
  • дата
  • дель
  • реж
  • эхо
  • стереть
  • Выход
  • перейти
  • помощь
  • если
  • мкр
  • mkdir
  • двигаться
  • путь
  • пауза
  • быстрый
  • пвд
  • рд
  • бэр
  • рен
  • переименовать
  • rmdir
  • набор
  • сдвиг
  • начинать
  • время
  • заголовок
  • тип

Кроме того, команда net доступна как внешняя команда, хранящаяся в \Windows\net.exe .

ReactOS

Командная строка (cmd.exe) в ReactOS

Реализация ReactOS включает следующие внутренние команды: [2]

  • ?
  • псевдоним
  • ассоц.
  • звуковой сигнал
  • вызов
  • компакт-диск
  • чдир
  • выбор
  • клс
  • цвет
  • копия
  • ctty
  • дата
  • дель
  • удалить
  • задерживать
  • реж
  • дир
  • эхо
  • эхо
  • эхоэрр
  • echoserr
  • конечный локальный
  • стереть
  • Выход
  • для
  • бесплатно
  • перейти
  • история
  • если
  • память
  • мкр
  • mkdir
  • mklink
  • двигаться
  • путь
  • пауза
  • попд
  • быстрый
  • pushd
  • рд
  • rmdir
  • бэр
  • рен
  • переименовать
  • заменять
  • экран
  • набор
  • установитьлокальный
  • сдвиг
  • начинать
  • время
  • таймер
  • заголовок
  • тип
  • вер
  • проверять
  • том

Сравнение с COMMAND.COM

В Windows cmd.exe в основном совместим с COMMAND.COM, но предоставляет следующие расширения для него:

  • Более подробные сообщения об ошибках, чем общее сообщение " Bad command or file name " (в случае неправильно сформированных команд) COMMAND.COM . В OS/2 сообщения об ошибках выводятся на выбранном языке системы, их текст берется из файлов системных сообщений. Затем можно выполнить команду HELP с номером сообщения об ошибке, чтобы получить дополнительную информацию.
  • Поддерживает использование клавиш со стрелками для прокрутки истории команд. (В DOS эта функция была доступна только в DR DOS (через HISTORY ) и позже через внешний компонент DOSKEY .)
  • Добавляет циклическое завершение командной строки для путей к файлам и папкам, где пользователь может циклически перебирать результаты для префикса, используя Tab, и + для обратного направления.ShiftTab ↹
  • Обрабатывает символ вставки ( ^ ) как экранирующий символ ; следующий за ним символ следует понимать буквально. В cmd.exe и COMMAND.COM есть специальные символы , предназначенные для изменения поведения процессора командной строки. Символ вставки заставляет процессор командной строки интерпретировать их буквально.
  • Поддерживает отложенное расширение переменных с помощью SETLOCAL EnableDelayedExpansion, что позволяет вычислять значения переменных во время выполнения, а не во время анализа скрипта перед выполнением (Windows 2000 и более поздние версии), исправляя идиомы DOS, которые усложняли использование управляющих структур . [16] Расширения можно отключить, что обеспечивает более строгий режим совместимости.

Также были улучшены внутренние команды:

  • Команда DELTREE была объединена с командой RD как часть ее ключа /S .
  • Команды SetLocal и EndLocal ограничивают область изменений в среде. Изменения, внесенные в среду командной строки после команд SetLocal, являются локальными для пакетного файла . Команда EndLocal восстанавливает предыдущие настройки. [17]
  • Команда Call позволяет использовать подпрограммы внутри пакетного файла. Команда Call в COMMAND.COM поддерживает только вызов внешних пакетных файлов.
  • Расширения анализатора имен файлов для команды Set сопоставимы с оболочкой C. [ необходимы дополнительные пояснения ]
  • Команда Set может выполнять оценку выражений .
  • Расширение команды For поддерживает анализ файлов и произвольных наборов в дополнение к именам файлов.
  • Новые команды PushD и PopD обеспечивают доступ к пройденным путям, аналогично кнопкам «вперед» и «назад» в веб-браузере или проводнике .
  • Условная команда IF может выполнять сравнения без учета регистра и числовые сравнения равенства и неравенства в дополнение к сравнениям строк с учетом регистра. (Это было доступно в DR-DOS, но не в PC DOS или MS-DOS .)

Смотрите также

Ссылки

  1. ^ "Заметки об использовании командного процессора OS/2 по умолчанию (CMD.EXE)". www.tavi.co.uk .
  2. ^ abc "reactos/reactos". GitHub . 4 декабря 2021 г.
  3. ^ "Command Processor Shell (Windows CE .NET 4.2)". Microsoft Docs . 30 июня 2006 г. Архивировано из оригинала 31 августа 2022 г.
  4. ^ "Command Processor Shell (Windows CE 5.0)". Microsoft Docs . 14 сентября 2012 г. Архивировано из оригинала 28 августа 2022 г.
  5. ^ "Command Processor Shell (Windows Embedded CE 6.0)". Microsoft Docs . 2012. Архивировано из оригинала 5 сентября 2022 г.
  6. ^ Закари, Г. Паскаль (1994). Шоустоп! Головокружительная гонка за создание Windows NT и следующего поколения в Microsoft . The Free Press . ISBN 0-02-935671-7.
  7. ^ Дуглас Макконахи Болинг (2001). Программирование Microsoft Windows CE (2-е изд.). Microsoft Press . ISBN 978-0735614437.
  8. ^ ab "cmd". Microsoft Learn . 12 сентября 2023 г. Архивировано из оригинала 21 ноября 2023 г.
  9. ^ "Перенаправление команд, каналы - Windows CMD - SS64.com". ss64.com . Получено 23 сентября 2021 г. .
  10. ^ Ограничение на строку командной строки командной строки (Cmd.exe)
  11. ^ Справочник пользователя Microsoft Operating System/2 (PDF) . Microsoft . 1987.
  12. ^ Хилл, Тим (1998). Windows NT Shell Scripting . Macmillan Technical Publishing . ISBN 978-1578700479.
  13. ^ "Команды процессора команд (Windows CE .NET 4.2)". Microsoft Docs . 30 июня 2006 г. Архивировано из оригинала 31 августа 2022 г.
  14. ^ "Команды процессора команд (Windows CE 5.0)". Microsoft Docs . 14 сентября 2012 г. Архивировано из оригинала 31 августа 2022 г.
  15. ^ "Команды процессора команд (Windows Embedded CE 6.0)". Microsoft Docs . 5 января 2012 г. Архивировано из оригинала 6 сентября 2022 г.
  16. ^ "Windows 2000 delayed environment variable expand". Windows IT Pro . Архивировано из оригинала 13 июля 2015 г. Получено 13 июля 2015 г.
  17. ^ "Setlocal". TechNet . Microsoft . 11 сентября 2009 г. Получено 13 января 2015 г.

Дальнейшее чтение

  • «Справочник командной строки AZ». Microsoft . 26 апреля 2023 г.
  • "Cmd". Документация по продукту Microsoft Windows XP . Microsoft . Архивировано из оригинала 2 сентября 2011 г. . Получено 24 мая 2006 г. .
  • "Командная строка: часто задаваемые вопросы". Справка Windows . Microsoft . Архивировано из оригинала 22 апреля 2015 г. . Получено 20 апреля 2015 г. .
  • «А–Я индекс командной строки Windows CMD». SS64.com.
  • «Windows CMD.com – Hub of Windows Commands». windowscmd.com. Архивировано из оригинала 11 января 2022 г. Получено 4 января 2022 г.
  • Самые важные команды CMD в Windows - colorconsole.de
Взято с "https://en.wikipedia.org/w/index.php?title=Cmd.exe&oldid=1257124690"