Страница 1 из 1

Консольные команды Windows NT

Добавлено: 09 июл 2010, 09:36
Raven
Изначально многие пользователи NT не пользуются теми возможностями, которые предоставляют команды консоли, либо используют их не полностью. В этом материале я хотел бы описать основные моменты работы с консолью. Для чего, вы спросите, это нужно? Знание основных команд позволяет автоматизировать работу, используя их в командных файлах, ну а при работе с сетью многие из них незаменимы. Все изложенное будет относиться в основном к Windows XP, но вполне может быть применимо к другим версиям NT (4, 2000), правда, уже с некоторыми ограничениями.

В основе NT лежат несколько другие принципы, чем в Win9x. Однако MS-DOS также присутствует, правда, только в качестве виртуальной машины (NT Virtual DOS Machine, NTVDM). Фактически это режим командной строки, с помощью которой вводятся и выполняются утилиты и пакетные файлы.

Доступ к командной строке можно получить через меню Пуск/Программы/Стандартные/Командная строка.
Основным интерпретатором командной строки в NT является cmd.exe, основным - это потому, что присутствует и стандартный интерпретатор команд MS-DOS - command.com.

Запустив cmd.exe (через меню либо Пуск/Выполнить/cmd.exe), получаем окно, в котором можно работать с командной строкой. Причем, находясь уже в открытом командном окне, можно запустить еще несколько версий cmd. Для завершения работы текущей версии можно воспользоваться командой EXIT.

Существует два режима работы cmd.exe - расширенный и стандартный. Расширенный режим работает со следующими командами: DEL или ERASE; COLOR; CD или CHDIR; MD или MKDIR; PROMPT; PUSHD; POPD; SET; SETLOCAL; ENDLOCAL; IF; FOR; CALL; SHIFT; GOTO; START (изменен также вызов внешних команд); ASSOC; FTYPE.
Команда CMD
Общий синтаксис команды:

Код: Выделить всё

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF] 
[[/S] [/C | /K] команда] 
/C(/K) - Выполнение указанной команды с/без последующего завершения.
Выполнение указанной команды без последующего завершения.
  • /S - Изменение поведения после /C или /K (см. ниже).
    /Q - Отключение режима вывода команд на экран (ECHO).
    /D - Отключение выполнения команд AutoRun из реестра (см. ниже).
    /A (/U) - Вывод результатов выполнения команд в формате ANSI/UNICODE.
    /T:цв - Выбор цвета текста/фона (более подробно см. описание COLOR ниже).
    /E:ON(/E:OFF) - Разрешение/запрет расширений команд (см. ниже).
    /F:ON(/F:OFF) - Разрешение/запрет символов завершения имен файлов и папок (см. ниже).
    /V:ON(/V:OFF) - Разрешение/запрет отложенного расширения переменных среды с применением символа '!' в качестве разделителя.
Hапример, /V:ON разрешает использовать !var! в качестве расширения переменной var во время выполнения. Синтаксис var служит для расширения переменных при вводе, что приводит к совсем другим результатам внутри цикла FOR. Параметр COLOR. Атрибуты цветов задаются в виде ДВУХ шестнадцатеричных цифр - первая задает цвет фона, а вторая определяет цвет текста. Каждая цифра может иметь следующие значения: 0=черный, 1=синий, 2=зеленый, 3=голубой, 4=красный, 5=лиловый, 6=желтый, 7=белый, 8=серый, 9=светло-синий, А=светло-зеленый, В=светло-голубой, C=светло-красный, D=светло-лиловый, E=светло-желтый, F=ярко-белый.
Если аргумент не указан, команда восстанавливает исходный выбор цветов, каким он был на момент запуска CMD.EXE. Это значение извлекается из текущего текстового окна, из значения ключа /T или из значения параметра реестра DefaultColor.
Команда COLOR возвращает значение кода ошибки ERRORLEVEL 1 при попытке вызова этой команды с совпадающими значениями цвета текста и цвета фона.
Пример: "COLOR fc" задает светло-красный текст на ярко-белом фоне.
Чтобы указать в одной строке несколько команд, следует разделить их символами '&&' и заключить в кавычки. Кроме того, из соображений совместимости, /X означает то же, что и /E:ON, /Y - то же, что и /E:OFF, и /R - то же, что и /C.
Все прочие ключи командной строки игнорируются.
Если указаны ключи /C или /K, то остальная часть командной строки после такого ключа обрабатывается как командная строка, а обработка символов кавычек (") ведется по следующим правилам:
1. Если выполняются все перечисленные ниже условия, то символы кавычек в командной строке сохраняются:
- ключ /S отсутствует;
- есть ровно два символа кавычек;
- между ними нет других специальных символов, как то: &()@^|;
- между ними имеются один или несколько пробелов;
- строка, заключенная в кавычки, является именем исполняемого файла.
2. В противном случае проверяется первый символ, и если он является символом кавычек, то он удаляется, также удаляется последний символ кавычек в командной строке, а весь текст после этого последнего символа кавычек сохраняется.
Если ключ /D не указан в командной строке, то при запуске CMD.EXE выполняется проверка значений переменных REG_SZ или REG_EXPAND_SZ для следующих разделов системного реестра:
HKEY_LOCAL_MACHINE SoftwareMicrosoft Command ProcessorAutoRun
и/или
HKEY_CURRENT_USERSoftware Microsoft Command ProcessorAutoRun
и если одна из них или обе они присутствуют, то сначала выполняются они.
По умолчанию расширенная обработка команд включена. Чтобы запретить расширенную обработку для конкретного вызова, используется ключ /E:OFF.
Можно включить или отключить расширенную обработку команд для всех вызовов CMD.EXE на данном компьютере или для данного пользователя, с помощью REGEDT32.EXE задав значения REG_DWORD в системном реестре для разделов:
HKEY_LOCAL_MACHINE SoftwareMicrosoft Command ProcessorEnableExtensions
и/или
HKEY_CURRENT_USERSoftware Microsoft Command ProcessorEnableExtensions,
равными 0x1 или 0x0. Параметры пользователя перекрывают параметры компьютера. Ключи командной строки, в свою очередь, перекрывают параметры реестра.
Отложенное расширение переменных среды по умолчанию не включено. Его можно включить или отключить для конкретного вызова CMD.EXE с помощью ключей /V:ON или /V:OFF, или же с помощью REGEDT32.EXE задав значения REG_DWORD в системном реестре для разделов:
HKEY_LOCAL_MACHINE SoftwareMicrosoft Command ProcessorDelayedExpansion
и/или
HKEY_CURRENT_USERSoftware Microsoft
Command ProcessorDelayedExpansion равными 0x1 или 0x0. Параметры пользователя, как уже говорилось выше, перекрывают параметры компьютера, также и ключи командной строки, в свою очередь, перекрывают параметры реестра. Если отложенное расширение переменных среды включено, то символ '!' (восклицательный знак) может использоваться для замены текущего значения переменной среды во время выполнения. Включение/выключение отложенного расширения переменных среды для всех вызовов CMD.EXE на данном компьютере или для данного пользователя возможно с помощью REGEDT32.EXE при значении REG_DWORD в системном реестре для следующих разделов:
HKEY_LOCAL_MACHINE SoftwareMicrosoft Command ProcessorCompletionChar,
HKEY_LOCAL_MACHINE SoftwareMicrosoft Command ProcessorPathCompletionChar
и/или
HKEY_CURRENT_USERSoftware Microsoft Command ProcessorCompletionChar,
HKEY_CURRENT_USERSoftware Microsoft Command ProcessorPathCompletionChar, установив их шестнадцатеричные значения равными коду управляющего символа, используемого для конкретной функции (например, 0x4 для Ctrl-D или 0x6 для Ctrl-F). Опять же, параметры пользователя перекрывают параметры компьютера; ключи командной строки, в свою очередь, перекрывают параметры реестра.
Завершение имен файлов и папок также не включено по умолчанию. Это можно исправить с помощью ключей /F:ON или /F:OFF. Если завершение включено с помощью ключа командной строки /F:ON, то используются два управляющих символа: Ctrl-D для имен папок и Ctrl-F для имен файлов. Чтобы отключить конкретный символ завершения в системном реестре, в качестве кода специального символа используется шестнадцатеричное значение символа пробела (0x20).
Завершение вызывается при вводе одного из этих двух специальных символов.
Функция завершения берет строку пути слева от точки ввода, дописывает к ней символ шаблона, если таковой отсутствует, а затем строит список путей, которые соответствуют полученному определению. После этого выводится первый элемент этого списка соответствующих путей. Если же список пуст, то подается звуковой сигнал и ничего не выводится.
После этого повторный ввод того же самого специального символа приводит к циклическому перебору всех соответствующих путей. Hажатие клавиши при вводе управляющего символа позволяет просматривать список путей в обратном порядке. Если изменить выведенный путь, а затем снова ввести управляющий символ, сохраненный список очищается и строится новый список путей. То же самое происходит, если переключиться с одного символа завершения на другой.
Единственное отличие при использовании символа завершения файла состоит в том, что при этом для построения списка соответствия берется и путь, и имя файла, а при использовании символа завершения папки - только путь. Если символ завершения используется в одной из встроенных команд манипулирования папками (CD, MD или RD), то всегда подразумевается символ завершения папок.
Символ завершения правильно работает и с именами файлов, содержащими пробелы или иные специальные символы, если при этом строка соответствия заключена в кавычки. Кроме того, если сместить точку ввода влево, а затем использовать символ завершения внутри строки, оставшийся справа от точки ввода текст будет отброшен.
Специальные символы, которые требуют обязательного заключения в кавычки: &()[]{}^=;!'+,`~
Команда PROMT
Изменение приглашения командной строки cmd.exe.
PROMPT [текст], где текст - новое приглашение командной строки. Приглашение может включать обычные символы и следующие коды:
  • $A - & (амперсанд);
    $B - | (вертикальная черта);
    $C - ( (левая круглая скобка);
    $D - Текущая дата;
    $E - ESC (символ ASCII с кодом 27);
    $F - ) (правая круглая скобка);
    $G - > (знак "больше");
    $H - BACKSPACE (удаление предыдущего символа);
    $L - $N - Текущий диск;
    $P - Текущие диск и каталог;
    $Q - = (знак равенства);
    $S - (пробел);
    $T - Текущее время;
    $V - Hомер версии Windows XP;
    $_ - Возврат каретки и перевод строки;
    $$ - $ (символ доллара).
Когда расширенная обработка команд включена, то команда PROMPT поддерживает следующие дополнительные символы форматирования:
  • $+ - отображение нужного числа знаков плюс (+) в зависимости от текущей глубины стека каталогов PUSHD, по одному знаку на каждый сохраненный путь;
    $M - отображение полного имени удаленного диска, связанного с именем текущего диска, или пустой строки, если текущий диск не является сетевым. Hапример, если диск E: подключен к сетевому ресурсу ServerPrograms, то при команде PROMT $M$P$G формат приглашения командной строки будет следующий: ServerPrograms
    E:>.

Re: Консольные команды Windows NT

Добавлено: 09 июл 2010, 10:22
Gen1us2k
в венде консоль плоская %)