Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Запускает новый экземпляр интерпретатора команд, cmd.exe. При использовании без параметров cmd отображается информация о версии и авторских правах операционной системы.
Note
Пользователям, которым требуются более расширенные возможности, рекомендуется изучить PowerShell для улучшения сценариев и автоматизации.
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>} |
Задает цвета фона (b) и переднего плана (f). |
| /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. Вы можете включить или отключить расширения для всехcmdпараметров командной строки на компьютере или в пользовательском сеансе, установив следующие значения REG_DWORD :HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD
Установите значение REG_DWORD в значение 0x1 (включено) или 0x0 (отключено) в реестре с помощью Regedit.exe. Указанные пользователем параметры имеют приоритет над параметрами компьютера, а параметры командной строки имеют приоритет над параметрами реестра.
Caution
Неправильное редактирование реестра может значительно повредить систему. Перед внесением изменений в реестр рекомендуется создать резервную копию всех важных данных.
При включении расширений команд затрагиваются следующие команды:
assoccall-
chdir(cd) color-
del(erase) endlocalforftypegotoif-
mkdir(md) popdpromptpushdsetsetlocalshift-
start(также включает изменения во внешние процессы команд)
Если включить отложенное расширение переменной среды, можно использовать символ восклицательного знака (
!) для замены значения переменной среды во время выполнения.Завершение имени файла и каталога по умолчанию не включено. Вы можете включить или отключить завершение имени файла для определенного
cmdпроцесса команды./f:{on | off}Вы можете включить или отключить завершение имен файлов и каталогов для всех процессов
cmdкоманды на компьютере или для сеанса входа пользователя в систему, установив следующие значения REG_DWORD :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
Чтобы задать значение REG_DWORD , запустите Regedit.exe и используйте шестнадцатеричное значение управляющего символа для определенной функции (например, 0x9 — это TAB, а 0x08 — BACKSPACE). Используйте значение [0x20] для пробелов, так как это не допустимый управляющий символ. Указанные пользователем параметры имеют приоритет над параметрами компьютера, а параметры командной строки имеют приоритет над параметрами реестра.
Caution
Неправильное редактирование реестра может значительно повредить систему. Перед внесением изменений в реестр рекомендуется создать резервную копию всех важных данных.
Если вы включаете дополнение имен файлов и каталогов с помощью
/f:on, используйте CTRL+D для завершения имен каталогов и CTRL+F для завершения имен файлов. Единственное различие между комбинациями клавиш CTRL+D и CTRL+F заключается в том, что CTRL+D соответствует только именам каталогов, а CTRL+F соответствует как файлам, так и каталогам. Если вы используете завершение имени файла и каталога для встроенных команд каталоговcd,mdилиrdпредполагается завершение каталога.Нажатие клавиш CTRL+D или CTRL+F обрабатывает завершение файла и имени директории. Эти функции сочетания ключей добавляют подстановочный знак
<string>, если он отсутствует, создайте список путей, соответствующих, а затем отобразите первый путь сопоставления. Если ни один из путей не соответствует, функция завершения имени файла и каталога не изменяет отображение.- Чтобы перемещаться по списку совпадающих путей, нажмите CTRL+D или CTRL+F несколько раз.
- Чтобы переместиться по списку назад, нажмите клавишу SHIFT и CTRL+D или CTRL+F одновременно.
- Чтобы отбросить сохраненный список совпадающих путей и создать новый список, отредактируйте
<string>и нажмите CTRL+D или CTRL+F. - При переключении между CTRL+D и CTRL+F сохраненный список совпадающих путей удаляется, и создается новый список.
Завершение имени файла и каталога правильно обрабатывает имена файлов, содержащие пробелы или специальные символы, если кавычки размещаются вокруг соответствующего пути.
Если вы обрабатываете завершение имени файла и каталога изнутри
<string>, в точке<string>, где было обработано завершение, любая часть пути справа от курсора отбрасывается.
Использование переменных среды
Среда cmd командной оболочки определяется переменными, определяющими поведение командной оболочки и операционной системы. Можно определить поведение среды командной оболочки или всей операционной среды с помощью двух типов переменных среды, системных и локальных. Системные переменные среды определяют поведение глобальной операционной среды. Переменные локальной среды определяют поведение среды текущего экземпляра cmd.
Только пользователи с правами администратора могут изменять системные переменные. Эти переменные чаще всего используются в сценариях входа. Переменные локальной среды доступны только при входе пользователя, для которого они были созданы. Локальные переменные, установленные в HKEY_CURRENT_USER кусте, действительны только для текущего пользователя, но определяют поведение глобальной среды операционной системы.
В следующем списке описаны различные типы переменных в порядке убывания приоритета:
- Встроенные системные переменные.
- Системные переменные, найденные в HKEY_LOCAL_MACHINE улье.
- Локальные переменные, найденные в HKEY_CURRENT_USER улье.
- Все переменные среды и пути, заданные в файле Autoexec.bat.
- Все переменные среды и пути, заданные в скрипте входа (при наличии).
- Переменные, используемые интерактивно в скрипте или пакетном файле.
В командной оболочке каждый экземпляр cmd наследует среду родительского приложения. Таким образом, переменные можно изменить в новой cmd среде, не затрагивая среду родительского приложения.
Переменные среды в среде можно просмотреть, выполнив одну из следующих команд:
set
Get-ChildItem Env:
настройка переменных среды.
Чтобы просмотреть переменную, введите:
set <VariableName>
Чтобы добавить переменную, введите:
set <VariableName>=<value>
Чтобы удалить переменную, введите:
set <VariableName>=
Большинство символов можно использовать в качестве переменных значений, включая пробелы. Если вы используете специальные символы <, >, |, & или ^, вы должны предварять их escape-символом ^или двойными кавычками. Если вы используете двойные кавычки, они включены в качестве части значения, так как все после знака равенства принимается в качестве значения. Рассмотрим следующие примеры:
Чтобы создать значение 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 как она была введена. Вы можете сочетать прописные и строчные буквы в именах переменных, чтобы сделать код более читабельным, например, UserName.
Note
- Максимальный размер переменной среды составляет 8 192 байта.
- Максимальный общий размер всех переменных среды, включая имена, значения и знаки равенства, составляет 65 536 символов для процесса.
Подставка значений переменной среды
Чтобы заменить значения переменных в командной строке или скриптах, заключите имя переменной в знаки процента (%VariableName%). Это позволяет cmd ссылаться на значение переменной вместо того, чтобы рассматривать его как литеральный текст. При запуске cmd скрипта заменяет экземпляры переменной значением. Например, использование %USERNAME% в скрипте автоматически заменяет фактическое имя пользователя. Подстановка переменных не рекурсивна; cmd проверяет переменные только один раз.