» Hardware » Software » Windows » Internet » Humor » Other

Эффективная консоль

Argon On-Line » Windows » Windows XP
 

В 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/

 
Еще
Оглавление раздела
Содержание / Новости

Карта сайта
О сайте
Ссылки

Форум
Обратная связь
Если ты нашел ошибку, хочешь что-то посоветовать либо поругать меня, не посчитай за труд написать об этом в следующем поле...







К началу страницы© 2002—2008 Argon