В Windows XP командный интерпретатор cmd.exe при простом запуске, без указания параметров командной строки, отображает версию операционной системы, информацию о защите авторских прав разработчиков ОС и, собственно, саму командную строку, в которой можно ввести как параметр командной строки самой программы cmd.exe, так и любую внешнюю команду, например, команду на запуск другого приложения или стандартную команду, типа mkdir, del и т. п. В случае указания параметров командной строки вы, естественно, получаете некоторые дополнительные возможности. Синтаксис в данном случае таков:
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] [[/S] [/C | /K] команда]
Здесь команда, собственно, и задает исполняемую команду или программу. Можно использовать одновременно и несколько команд, используя между ними специальный разделитель — символы &&, при этом все сочетание нескольких команд должно быть заключено в кавычки, например, "команда&&команда&&команда".
Теперь почти в соответствии с официальной документацией Microsoft (я взял на себя смелость ее подредактировать, сделав немного более понятной для народа, если это в данном случае вообще возможно) попробую расшифровать значение каждого параметра:
/?
Вызов справки (очень подробная, на основе ее, собственно, и написана эта статья).
/A
Вывод результатов выполнения заданной команды в формате ANSI.
/C
Выполнение заданной команды с последующим завершением (то есть закроется окно консоли).
/D
Отключение выполнения команд AutoRun (которые первыми автоматически выполняются при вызове cmd.exe), заданных в специальных разделах реестра [HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \ AutoRun] (в этом разделе задаются параметры, типа REG_SZ) и [HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \ AutoRun] (в этом разделе задаются параметры, типа REG_EXPAND_SZ).
/E:ON (/E:OFF)
Разрешение (запрет) расширений команд. В Windows XP по умолчанию включена расширенная обработка всех команд cmd.exe, этот параметр служит для включения / выключения расширений конкретного процесса.
Полностью отключить или включить расширенную обработку на данном компьютере или для конкретного пользователя можно в реестре, в соответствующих нужному контексту разделах [HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor] и [HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor].
Параметр "EnableExtensions"=dword:00000001 в этих разделах включает расширения, а "EnableExtensions"=dword:00000000 — отключает, при этом параметры пользователя имеют приоритет над параметрами компьютера, значение параметра /E командного процессора имеет приоритет над параметрами реестра.
При расширенной обработке команд изменения и / или добавления затрагивают следующие команды: assoc, call, chdir (cd), color, del (erase), endlocal, for, ftype, goto, if, mkdir (md), popd, prompt, pushd, set, setlocal, shift, start (изменен также вызов внешних команд); /F:ON (/F:OFF) — разрешение (запрет) завершения имен файлов и папок (по умолчанию выключено) конкретного вызова cmd.exe. Довольно удобная функция, позволяющая не вводить полностью вручную в окне консоли пути к файлам или имена самих папок, а ввести только часть длинного пути и с помощью нажатия специальной комбинации клавиш дать операционной системе найти подходящие варианты и просто выбрать нужный.
Если необходимо включить или отключить завершение имен для всех вызовов cmd.exe, то в разделах реестра [HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor] (для локальной машины), [HKEY_CURRENT_USER \ Software \ Microsoft \Command Processor] (для текущего пользователя) установите следующие параметры (приведены значения по умолчанию):
"CompletionChar"=dword:00000040
"PathCompletionChar"=dword:00000040
таким образом, чтобы их шестнадцатеричные значения соответствовали коду управляющего символа, используемого для конкретной функции (например, 0 x 4 для Ctrl+D или 0 x 6 для Ctrl+F). Это позволяет сделать известная утилита, неоднократно упоминавшаяся и описанная в нашем журнале, TweakUI.
Параметры пользователя имеют приоритет над параметрами компьютера, значение параметра /F командного процессора имеет приоритет над параметрами реестра.
Microsoft вносит некоторые разъяснения по поводу использования этой функции: "Если завершение включено с помощью ключа командной строки /F:ON, то используются два управляющих символа: Ctrl+D для имен папок и Ctrl+F для имен файлов. Чтобы отключить конкретный символ завершения в системном реестре, в качестве кода специального символа используется шестнадцатеричное значение символа пробела (0 x 20). Завершение вызывается при вводе одного из этих двух специальных символов.
Функция завершения берет строку пути слева от точки ввода, дописывает к ней символ шаблона, если таковой отсутствует, а затем строит список путей, которые соответствуют полученному определению. После этого выводится первый элемент этого списка соответствующих путей. Если же список пуст, то подается звуковой сигнал, и ничего не выводится. После этого повторный ввод того же самого специального символа приводит к циклическому перебору всех соответствующих путей.
Нажатие клавиши Shift при вводе управляющего символа позволяет просматривать список путей в обратном порядке. Если изменить выведенный путь, а затем снова ввести управляющий символ, сохраненный список очищается, и строится новый список путей. То же самое происходит, если переключиться с одного символа завершения на другой. Единственное отличие при использовании символа завершения файла состоит в том, что при этом для построения списка соответствия берется и путь, и имя файла, а при использовании символа завершения папки — только путь.
Если символ завершения используется в одной из встроенных команд манипулирования папками (CD, MD или RD), то всегда подразумевается символ завершения папок.
Символ завершения правильно работает и с именами файлов, содержащими пробелы или иные специальные символы, если при этом строка соответствия заключена в кавычки. Кроме того, если сместить точку ввода влево, а затем использовать символ завершения внутри строки, оставшийся справа от точки ввода текст будет отброшен.
Специальные символы, которые требуют обязательного заключения в кавычки:
<пробел> & ( ) [ ] { } ^ = ; ! ’ + , ` ~ "
Все понятно?
/K
Выполнение заданной команды без последующего завершения (здесь окно консоли не закроется).
/Q
Отключение вывода команд на экран (ECHO OFF).
/R
Аналогичен параметру /C.
/S
Изменение поведения команды после /C или /K.
/T:цвет
Задание цвета текста и фона окна консоли.
Параметр цвет имеет значение в виде двух шестнадцатеричных чисел: первое определяет цвет фона окна, а второе — текста в окне. Если набор цветов на момент запуска cmd.exe не менялся (например, другой сессией командного процессора), то по умолчанию будет использован параметр реестра, определяющий внешний вид консоли: [HKEY_CURRENT_USER \ Software \ Microsoft \Command Processor]
"DefaultColor"=dword:00000000
Соответствия этих чисел цветам приведены в таблице.
Цвет текста и фона окна консолиЗначение | Цвет |
---|
0 | черный |
1 | синий |
2 | зеленый |
3 | голубой |
4 | красный |
5 | лиловый |
6 | желтый |
7 | белый |
8 | серый |
9 | светло-синий |
A | светло-зеленый |
B | светло-голубой |
C | светло-красный |
D | светло-лиловый |
E | светло-желтый |
| ярко-белый |
То есть результатом выполнения вот этой команды "CMD /T:7С" будут светло-красные буквы на белом фоне.
/U
Вывод результатов выполнения команды в формате Unicode.
/V:ON (/V:OFF)
Разрешение (запрет) отложенного расширения переменных среды (для конкретного вызова cmd.exe) с применением восклицательного знака "!" в качестве разделителя. Например, /V:ON разрешает использовать !var! в качестве расширения переменной var во время выполнения. Синтаксис var служит для расширения переменных при вводе, что приводит совсем к другим результатам внутри цикла FOR.
Также отложенное расширение переменных среды можно включить или выключить в реестре, в разделах [HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor] (для локальной машины), [HKEY_CURRENT_USER \ Software \ Microsoft \Command Processor] (для текущего пользователя), установив параметр "DelayedExpansion"=dword:00000001 для разрешения и "DelayedExpansion"=dword:00000000 для запрета.
Параметры пользователя имеют приоритет над параметрами компьютера, значение параметра /V командного процессора имеет приоритет над параметрами реестра.
При включенном отложенном расширении переменных среды символ "!" (символ — восклицательный знак) может использоваться для замены текущего значения переменной среды во время выполнения.
/X
Означает то же, что и ключ /E:ON, из соображений совместимости.
/Y
То же, что и /E:OFF.
И в завершение еще несколько ценных замечаний.
Если указаны ключи /C или /K, то остальная часть командной строки после такого ключа обрабатывается как командная строка, а обработка символов кавычек (") ведется таким образом. Символы кавычек в командной строке сохраняются, если выполняются все перечисленные ниже условия:
- ключ /S отсутствует;
- присутствует ровно два символа кавычек;
- между ними нет других специальных символов, как то: & < > ( ) @ ^ |;
- между ними имеется один или несколько пробелов;
- строка, заключенная в кавычки, является именем исполняемого файла.
В противном случае проверяется первый символ, и если он является символом кавычек, то он удаляется, также удаляется последний символ кавычек в командной строке, а весь текст после этого последнего символа кавычек сохраняется.
http://www.computery.ru/upgrade/