Поделиться через


cmd

Запускает новый экземпляр интерпретатора команд, cmd.exe. При использовании без параметров cmd отображается информация о версии и авторских правах операционной системы.

Note

Users seeking more advanced capabilities are encouraged to explore PowerShell for enhanced scripting and automation.

Syntax

cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]

Parameters

Parameter Description
/c Выполняет команду, указанную <string> и затем выходит из обработчика команд.
/k Выполняет команду, <string> указанную и сохраняет выполнение обработчика команд.
/s При использовании с /c или /k, активирует специальные правила без синтаксического анализа, которые чередуют первые и последние кавычки (") вокруг <string> , но оставляет остальную часть команды без изменений.
/q Отключает эхо.
/d Отключает выполнение команд AutoRun.
/a Форматирует выходные данные команды как Американский институт национальных стандартов (ANSI).
/u Форматирует выходные данные команды как Юникод.
/t:{<b><f> | <f>} Sets the background (b) and foreground (f) colors.
/e:on Включает расширения команд.
/e:off Отключает расширения команд.
/f:on Включает завершение имени файла и каталога.
/f:off Отключает завершение имени файла и каталога.
/v:on Включает отложенное расширение переменной среды.
/v:off Отключает отложенное расширение переменной среды.
<string> Указывает команду, которую вы хотите выполнить.
/? Отображение справки в командной строке.

В следующей таблице перечислены допустимые шестнадцатеричные цифры, которые можно использовать в качестве значений и <b><f>:

Value Color
0 Black
1 Blue
2 Green
3 Aqua
4 Red
5 Purple
6 Yellow
7 White
8 Gray
9 Light blue
a Light green
b Light aqua
c Light red
d Light purple
e Light yellow
f Bright white

Remarks

  • Чтобы перенаправить выходные данные команды на входные данные другой команды, используйте оператор канала (|). For example:

    <command1> | <command2>
    
  • Оператор двойного канала (||) используется для выполнения следующей команды, только если предыдущая команда завершается ошибкой. В данном сценарии command2 выполняется только в случае command1 сбоя. For example:

    <command1> || <command2>
    
  • Чтобы перенаправить выходные данные команды в файл, используйте символ больше угловой скобки > . For example:

    <command1> > <file1.txt>
    
  • Чтобы группировать или вложить несколько команд вместе, используйте &. For example:

    <command1> & <command2>
    
  • Чтобы использовать несколько команд, <string>разделяйте их разделителем &&команд. For example:

    <command1> && <command2> && <command3>
    

    Note

    При использовании &&следующая && команда выполняется только в том случае, если предыдущая команда успешно завершается. Cmd выполняет первую команду и переходит к следующей, только если предыдущая команда выполнена успешно. В противном случае, если предыдущая команда завершается ошибкой, последующие команды не будут выполняться.

  • Амперсанд &, канал |и скобки ( ) являются специальными символами, которые должны предшествовать escape-символу ^ или кавычкам при передаче их в качестве аргументов.

  • Если команда успешно завершает операцию, она возвращает код выхода нулевого (0) или нет кода выхода.

  • Если путь к каталогу, файлы или какие-либо данные, содержащие пробелы, необходимо использовать двойные кавычки (" ") вокруг текста, например "Computer Name". For example:

    mkdir Test && mkdir "Test 2" && move "Test 2" Test
    
  • Необходимо использовать кавычки вокруг следующих специальных символов: & <> [ ] | { } ^ = ; ! ' + , ' ~ [пробел].

  • При указании /c или /k, cmd остальных процессах и <string>кавычках сохраняются только в том случае, если выполняются все следующие условия:

    • Вы также не используете /s.
    • Вы используете ровно один набор кавычки.
    • В кавычках не используются специальные символы, например : & <> ( ) @ ^ |.
    • В кавычках используется один или несколько пробелов.
    • В <string> кавычках используется имя исполняемого файла.

    Если предыдущие условия не выполнены, обрабатывается путем проверки первого символа, <string> чтобы проверить, является ли он открывающим кавычки. Если первый символ является открывающим кавычками, он удаляется вместе с закрывающей кавычки. Сохраняется любой текст после закрывающих кавычки.

  • Если не указать /d, cmd найдите следующие подразделы реестра:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun\REG_SZ

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun\REG_EXPAND_SZ

    Если присутствуют один или оба подраздела реестра, они выполняются перед всеми другими переменными.

  • Расширения команд для определенного процесса можно отключить с помощью /e:off. You can enable or disable extensions for all cmd command-line options on a computer or user session by setting the following REG_DWORD values:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    Set the REG_DWORD value to either 0×1 (enabled) or 0×0 (disabled) in the registry by using Regedit.exe. Указанные пользователем параметры имеют приоритет над параметрами компьютера, а параметры командной строки имеют приоритет над параметрами реестра.

    Caution

    Неправильное редактирование реестра может значительно повредить систему. Перед внесением изменений в реестр рекомендуется создать резервную копию всех важных данных.

  • При включении расширений команд затрагиваются следующие команды:

    • assoc
    • call
    • chdir (cd)
    • color
    • del (erase)
    • endlocal
    • for
    • ftype
    • goto
    • if
    • mkdir (md)
    • popd
    • prompt
    • pushd
    • set
    • setlocal
    • shift
    • start (также включает изменения во внешние процессы команд)
  • Если включить отложенное расширение переменной среды, можно использовать символ восклицательного знака (!) для замены значения переменной среды во время выполнения.

  • Завершение имени файла и каталога по умолчанию не включено. Вы можете включить или отключить завершение имени файла для определенного cmd процесса команды./f:{on | off}

  • You can enable or disable file and directory name completion for all processes of the cmd command on a computer or for a user logon session by setting the following REG_DWORD values:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    To set the REG_DWORD value, run Regedit.exe and use the hexadecimal value of a control character for a particular function (for example, 0×9 is TAB and 0×08 is BACKSPACE). Use the [0×20] value for white space, because it isn't a valid control character. Указанные пользователем параметры имеют приоритет над параметрами компьютера, а параметры командной строки имеют приоритет над параметрами реестра.

    Caution

    Неправильное редактирование реестра может значительно повредить систему. Перед внесением изменений в реестр рекомендуется создать резервную копию всех важных данных.

  • If you enable file and directory name completion by using /f:on, use CTRL+D for directory name completion and CTRL+F for file name completion. The only difference between the key combinations CTRL+D and CTRL+F is that CTRL+D only matches directory names and CTRL+F matches both file and directory names. Если вы используете завершение имени файла и каталога для встроенных команд каталогов cd, mdили rdпредполагается завершение каталога.

  • Pressing CTRL+D or CTRL+F processes the file and directory name completion. Эти функции сочетания ключей добавляют подстановочный знак <string> , если он отсутствует, создайте список путей, соответствующих, а затем отобразите первый путь сопоставления. Если ни один из путей не соответствует, функция завершения имени файла и каталога не изменяет отображение.

    • To move through the list of matching paths, press CTRL+D or CTRL+F repeatedly.
    • To move through the list backwards, press the SHIFT key and CTRL+D or CTRL+F simultaneously.
    • To discard the saved list of matching paths and generate a new list, edit <string> and press CTRL+D or CTRL+F.
    • If you switch between CTRL+D and CTRL+F, the saved list of matching paths is discarded, and a new list is generated.
  • Завершение имени файла и каталога правильно обрабатывает имена файлов, содержащие пробелы или специальные символы, если кавычки размещаются вокруг соответствующего пути.

  • If you process file and directory name completion from within <string>, at the point in <string> where the completion was processed, any part of the path to the right of the cursor is discarded.

Использование переменных среды

Среда cmd командной оболочки определяется переменными, определяющими поведение командной оболочки и операционной системы. Можно определить поведение среды командной оболочки или всей операционной среды с помощью двух типов переменных среды, системных и локальных. Системные переменные среды определяют поведение глобальной операционной среды. Переменные локальной среды определяют поведение среды текущего экземпляра cmd.

Только пользователи с правами администратора могут изменять системные переменные. Эти переменные чаще всего используются в сценариях входа. Переменные локальной среды доступны только при входе пользователя, для которого они были созданы. Local variables set in the HKEY_CURRENT_USER hive are valid only for the current user, but define the behavior of the global operating system environment.

В следующем списке описаны различные типы переменных в порядке убывания приоритета:

  1. Встроенные системные переменные.
  2. System variables found in the HKEY_LOCAL_MACHINE hive.
  3. Local variables found in the HKEY_CURRENT_USER hive.
  4. Все переменные среды и пути, заданные в файле Autoexec.bat.
  5. Все переменные среды и пути, заданные в скрипте входа (при наличии).
  6. Переменные, используемые интерактивно в скрипте или пакетном файле.

В командной оболочке каждый экземпляр cmd наследует среду родительского приложения. Таким образом, переменные можно изменить в новой cmd среде, не затрагивая среду родительского приложения.

Переменные среды в среде можно просмотреть, выполнив одну из следующих команд:

set
Get-ChildItem Env:

настройка переменных среды.

Чтобы просмотреть переменную, введите:

set <VariableName>

Чтобы добавить переменную, введите:

set <VariableName>=<value>

Чтобы удалить переменную, введите:

set <VariableName>=

Большинство символов можно использовать в качестве переменных значений, включая пробелы. If you use the special characters <, >, |, &, or ^, you must precede them with the escape character ^or double quotation marks. Если вы используете двойные кавычки, они включены в качестве части значения, так как все после знака равенства принимается в качестве значения. Рассмотрим следующие примеры:

Чтобы создать значение New&Nameпеременной, введите:

set <VariableName>=New^&Name

Чтобы создать значение "New&Name"переменной, введите:

set <VariableName>="New&Name"

Если вы вводите set <VariableName>=New&Name (без карата ^ или двойных кавычки) в командной строке, может отобразиться следующее сообщение об ошибке:

"'Name' is not recognized as an internal or external command, operable program or batch file."

Имена переменных не учитывает регистр. Однако отображает переменную точно так же, set как она была введена. You can combine uppercase and lowercase letters in your variable names to make your code more readable, for example, UserName.

Note

  • Максимальный размер переменной среды составляет 8 192 байта.
  • Максимальный общий размер всех переменных среды, включая имена, значения и знаки равенства, составляет 65 536 символов для процесса.

Подставка значений переменной среды

Чтобы заменить значения переменных в командной строке или скриптах, заключите имя переменной в знаки процента (%VariableName%). Это позволяет cmd ссылаться на значение переменной вместо того, чтобы рассматривать его как литеральный текст. При запуске cmd скрипта заменяет экземпляры переменной значением. Например, использование %USERNAME% в скрипте автоматически заменяет фактическое имя пользователя. Подстановка переменных не рекурсивна; cmd проверяет переменные только один раз.