|
В Windows XP имеется так называемая консоль - весьма полезная в ряде случаев программа cmd.exe. Хотелось бы для более эффективного ее использования узнать параметры ее командной строки.
В 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\Micro-soft\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 |
светло-желтый |
| F |
ярко-белый |
То есть результатом выполнения вот этой команды "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 отсутствует;
- присутствует ровно два символа кавычек;
- между ними нет других специальных символов, как то:
&<>()@^|;
- между ними имеется один или несколько пробелов;
- строка, заключенная в кавычки, является именем исполняемого файла. В противном случае проверяется первый символ, и если он является символом кавычек, то он удаляется, также удаляется последний символ кавычек в командной строке, а весь текст после этого последнего символа кавычек сохраняется.
|
архив |
|
|
280,
278,
277,
276,
275,
274,
273,
272,
271,
270,
269,
268,
267,
266,
265,
264,
263,
261-262,
260,
259,
258,
257,
256,
255,
254,
253,
252,
251,
250,
249,
248,
247,
246,
243,
242,
241,
240,
239,
238,
237,
236,
235,
234,
233,
232,
231,
230,
229,
228,
227,
226,
225,
224,
223,
222,
221,
220,
219,
218,
217,
216,
215,
214,
213,
212,
211,
210-209,
208,
207,
206,
205,
204,
203,
202,
201,
200,
199,
198,
197,
196,
195,
194,
193,
192,
191,
190,
189,
188,
187,
186,
185,
184,
183,
182,
181,
180,
179,
178,
177,
176,
175,
174,
173,
172,
171,
170,
169,
168,
167,
166,
165,
164,
162,
161,
159,
158,
157,
156,
155,
154,
153,
152,
151,
150,
149,
148,
147,
146,
145,
144,
143,
142,
141,
140,
139,
138,
137,
136,
135,
134,
133,
132,
131,
130,
129,
128,
127,
126,
125,
124,
123,
122,
121,
120,
119,
118,
117,
116,
115,
114,
113,
112,
111,
110,
109,
108,
107,
106,
105,
104,
103,
102,
101,
100,
099,
098,
097,
096,
095,
094,
093,
092,
091,
090,
089,
088,
087,
086,
085,
084,
083,
082,
081,
080,
079,
078,
077,
076,
075,
074,
073,
072, |
 |
|
071,
070,
069,
068,
067,
066,
065,
064,
063,
062,
061,
060,
059,
058,
057,
056,
055,
054,
053,
052,
051,
050,
049,
048,
047,
046,
045,
044,
043,
042,
041,
040,
039,
038,
037,
036,
035,
034,
033,
032,
031,
030,
029,
028,
027,
026,
025,
024,
023,
022,
021,
020,
019,
018,
017,
016,
015,
014,
013,
012,
011,
010,
009,
008,
007,
006,
005,
004,
003,
002 |
|
|