Сайт о телевидении

Сайт о телевидении

» » Справка по переменным среды Windows

Справка по переменным среды Windows

    Команда SETLOCAL используется для временного изменения значений переменных среды в командных файлах Windows. Изменения среды, внесенные после выполнения команды SETLOCAL, являются локальными относительно текущего пакетного файла. Для восстановления их прежних значений необходимо выполнить команду ENDLOCAL. При достижении конца пакетного файла автоматически выполняется команда ENDLOCAL для всех действующих команд SETLOCAL, выполненных в этом пакетном файле и значения всех переменных окружения восстанавливаются к состоянию до выполнения команды SETLOCAL.

Формат командной строки:

SETLOCAL | ENABLEDELAYEDEXPANSION | DISABLEDELAYEDEXPANSION

Изменение команды SETLOCAL при включении расширенной обработки команд:

Команда SETLOCAL принимает необязательные аргументы: ENABLEEXTENSIONS или DISABLEEXTENSIONS. Это позволяет включить или отключить расширенную обработку команд до выполнения команды. См. CMD /? для подробного объяснения. ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION включает или отключает отложенное расширение переменной среды. См. SET /? для подробного объяснения. Эти изменения действуют до совпадения команды ENDLOCAL, независимо от исходного состояния до вызова команды SETLOCAL.

Если команда SETLOCAL вызывается с аргументом, она устанавливает код ошибки ERRORLEVEL. Если указан один из двух допустимых аргументов, код ошибки будет равен нулю, иначе возвращается значение 1. Это свойство можно использовать в пакетных файлах, чтобы определить доступность расширенной обработки команд, например:

VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo Не удается включить расширенную обработку

Эта группа команд работает, так как в прежних версиях CMD.EXE команда SETLOCAL не устанавливает значение ERRORLEVEL. Команда VERIFY с недопустимым аргументом необходима для установки ненулевого значения ERRORLEVEL.

При использовании переменных окружения в командных файлах существует определенное ограничение, связанное с тем фактом, что присваиваемое значение остается без изменения при его модификации внутри группы команд, задаваемой скобками, например в командах IF или FOR . Для обхода данного ограничения используется запуск командного процессора с параметром /V:ON и вместо знаков процента, для получения принимаемого переменной значения, используются восклицательные знаки. Кроме того, существует возможность использовать стандартный запуск командного процессора, но с локальным включением данного режима командой:

Разница в результатах использования значений переменных довольно наглядно демонстрируется следующим командным файлом:


@ECHO OFF
set VAR=before
if "%VAR%" == "before" (
set VAR=after
if "!VAR!" == "after" @echo Со знаком процента=%VAR% , Со знаком вопроса=!VAR!

Команда set VAR=after выполняется внутри подпрограммы, ограниченной скобками и, если убрать команду Setlocal EnableDelayedExpansion или не использовать для получения значения переменной VAR восклицательные знаки, ее значение останется старым (тем, что было установлено до входа в подпрограмму). Аналогичная же проблема наблюдается и тогда, когда значение переменной изменяется внутри цикла команды FOR . Например, для получения списка файлов текущего каталога такой командный файл не будет работать:

set LIST=
for %%i in (*) do set LIST=%LIST% %%i
echo %LIST%

Значение переменной LIST внутри цикла изменено не будет. Для того, чтобы это произошло, командный файл нужно изменить следующим образом:

Setlocal EnableDelayedExpansion
set LIST=
for %%i in (*) do set LIST=!LIST! %%i
echo %LIST%
Теперь, значение переменной LIST внутри цикла FOR будет изменяться, последовательно принимая значения имен файлов, разделенных пробелом ( set LIST=!LIST! %%i )

Местонахождение: Windows\system32

Описание: Windows Command Processor

В Windows XP имеется так называемая консоль - программа Cmd.exe , которая является командным интерпретатором. При простом запуске, без указания параметров командной строки, консоль отображает версию операционной системы, информацию о защите авторских прав разработчиков ОС и саму командную строку, в которой можно ввести как параметр командной строки самой программы Cmd.exe , так и любую внешнюю команду, например, команду на запуск другого приложения или стандартную команду, типа mkdir , del и т. п.

Параметры командной строки

Синтаксис для командной строки:

CMD [ команда]

Можно использовать одновременно несколько команд, используя между ними специальный разделитель - символы &&, при этом все сочетание нескольких команд должно быть заключено в кавычки, например, "команда&&команда&& команда ".

/? - вызов справки

/A - вывод результатов выполнения заданной команды в формате ANSI

/C - выполнение заданной команды с последующим закрытием окна консоли

/D - отключение выполнения команд AutoRun (которые первыми автоматически выполняются при вызове cmd.exe), заданных в специальных разделах реестра HKEY_LOCAL_MACHINE \Software\Microsoft\Command Processor\AutoRun и HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

/E:ON (/E:OFF) - разрешение (запрет) расширений команд. В Windows XP по умолчанию включена расширенная обработка всех команд cmd.exe, этот параметр служит для включения / выключения расширений конкретного процесса. Расширенная обработка включает следующие команды: 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, то смотри Автонабор команд ).

Параметры пользователя имеют приоритет над параметрами компьютера, значение параметра /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 /T:7С" будут светло-красные буквы на белом фоне.

/U - вывод результатов выполнения команды в формате Unicode

/V:ON (/V:OFF) - разрешение (запрет) отложенного расширения переменных среды (для конкретного вызова cmd.exe) с применением восклицательного знака "!" в качестве разделителя. Например, /V:ON разрешает использовать!var! в качестве расширения переменной var во время выполнения. Синтаксис var служит для расширения переменных при вводе, что приводит совсем к другим результатам внутри цикла FOR. При включенном отложенном расширении переменных среды символ "!" (восклицательный знак) может использоваться для замены текущего значения переменной среды во время выполнения; /X - означает то же, что и ключ /E:ON, из соображений совместимости; /Y то же, что и /E:OFF. И еще несколько замечаний.

Если указаны ключи /C или /K, то остальная часть командной строки после такого ключа обрабатывается как командная строка, а обработка символов кавычек (") ведется таким образом. Символы кавычек в командной строке сохраняются, если выполняются все перечисленные ниже условия: ключ /S отсутствует; есть ровно два символа кавычек; между ними нет других специальных символов, как то: &<>()@^|; между ними имеются один или несколько пробелов; строка, заключенная в кавычки, является именем исполняемого файла. В противном случае проверяется первый символ, и если он является символом кавычек, то он удаляется, также удаляется последний символ кавычек в командной строке, а весь текст после этого последнего символа кавычек сохраняется.

Таблица для задания цвета текста и фона окна консоли:

0 - черный; 1 - синий; 2 - зеленый; 3 - голубой; 4 - красный; 5 - лиловый; 6 - желтый; 7 - белый; 8 - серый; 9 - светло-синий; A - светло-зеленый; B - светло-голубой; C - светло-красный; D - светло-лиловый; E - светло-желтый; F - ярко-белый.

Кстати, цвет и другие настройки можно изменять и другим способом. Щелкните правой кнопкой мыши по строке заголовка окна и выберите пункт Свойства. Откроется окно с четырьмя вкладками, на которых будут доступны опции изменения настроек программы. Если вам не нравится стандартный черный экран командной строки, то на вкладке Color вам предлагается выбрать цвет экрана и текста либо из 16 стандартных цветов, для которых имеется соответствующие образцы, либо задав числовое значение цвета в формате RGB. На вкладке Layout настраивается размер окна и экранного буфера. Если в ранних ОС MS-DOS и Windows размер экрана оставался неизменным 25 строк в высоту и 80 символов в длину, и для вывода большего количества строк приходилось добавлять команду |more, то в системах NT и более поздних можно просто задать достаточно большой размер буфера экрана и пользоваться полосой прокрутки, что гораздо удобнее.

Текст в окне командной строки Для копирования и вставки текста в окно командной строки обычные для Windows комбинации клавиш, такие как Ctrl+C , Ctrl+V , работать не будут. Для извлечения текста из буфера обмена вам придется вызвать меню, щелкнув правой кнопкой мыши по заголовку окна, и выбрать подменю Edit. Или же просто щелкните правой кнопкой по окну. Для копирования текста из окна выберите пункт Mark и мышью выделите нужный текст. Затем либо нажмите Enter, либо в том же меню выберите Copy. Если надо вставить какой-то текст в окно командной строки, обратитесь к команде Paste. Для повторного выполнения команды воспользуйтесь стрелками <<вверх>> и <<вниз >>, позволяющими перемещаться по списку выполненных команд. Для очистки экрана от текста служит директива cls.

TITLE - для изменения заголовка строки

TITLE [строка] , где строка - это будущий заголовок окна командной строки (записывается без кавычек). После задания заголовка окна он может быть изменен только повторным вызовом команды TITLE. Использование данной команды может быть полезно в командных файлах.

Так, выполнение примера, который приведен ниже, будет сопровождаться появлением соответствующей надписи в заголовке окна:

TITLE Копируются файлы...

COPY \\Server\Share\*.doc C:\User\Common\*.doc

ECHO Копирование закончено.

TITLE Процесс завершен

Команда АТ - С помощью этой команды можно запускать команды и программы в определенное время.

AT [\\имя компьютера] [ | /DELETE ]

AT [\\имя компьютера] time [ /EVERY:дата[,...] | /NEXT:дата [,...]] "команда"

\\ имя компьютера указывает на удаленный компьютер, на котором могут быть запущены планируемые задачи. Если этот параметр не указан, то по умолчанию предполагается тот компьютер, на котором запускается команда АТ;

id идентификатор, назначенный указанной команде;

/delete отменяет намеченную команду. Если id опущен, все назначенные команды на компьютере отменены;

/yes этот параметр в случае использования с предыдущим параметром (/delete) автоматически включает подтверждение для всех запросов;

time время выполнения команды (в 24-часовом формате часы:минуты);

/interactive позволяет команде AT обмениваться с подключенными на данный момент в системе пользователями;

/every:дата[,...] выполняет команду в каждый указанный день (дни) недели или месяц. Если дата опущена, подразумевается текущий день месяца;

/next:дата[...] выполняет указанную команду при следующем наступлении указанной даты (например, в следующий четверг). Если дата не указанна, по умолчанию принимается текущий день месяца;

"команда" указывается команда Windows NT или пакетная программа, которая будет выполнена. Имя файла должно указываться полностью. При этом, если выполняется какая-либо из внутренних команд, например, COPY или DIR, а не исполняемый файл, то необходим запуск командного интерпретатора с ключом / С, например:

AT 10:00 "CMD /C DIR > C:\test.out.

Команда For - Ее возможности обширны, но мы ограничимся демонстрацией лишь одной из них - Копирование по сети на все машины сразу. Допустим, что требуется скопировать файл на двадцать машин. Делается это очень быстро. Сначала в файл list.txt записываем список всех имеющихся в сети машин. В консоли пишем:

net view > c:\list.txt

Затем, чтобы выполнить, например, копирование файла patch.exe на каждую машину из списка, даем команду:

FOR /F "tokens=1" %i in (с:\list.txt) do copy d:\temp\patch.exe "%i\C$\program files\ICQ"

Переменная %i будет автоматически принимать значение NetBIOS-имени машины из новой строки файла list.txt и на эту машину будет производиться копирование.

Изменение вида приглашения командной строки

cmstp.exe

Местонахождение: WINDOWS\system32

Описание: Microsoft Connection Manager Profile Installer

Установка или удаление профиля службы диспетчера подключений. Выполненная без параметров команда cmstp устанавливает профиль службы со стандартными параметрами, соответствующими данной операционной системе и разрешениям пользователя.

comp.exe

Местонахождение: WINDOWS\system32

Описание: File Compare Utility

Побайтное сравнение двух или нескольких файлов. Команда comp позволяет сравнивать файлы, находящиеся на разных дисках и в разных каталогах. При сравнении файлов с помощью команды comp выводятся их имена и расположения. Выполненная без параметров команда comp запрашивает файлы для сравнения.

Описание программы есть в Справке Windows

Синтаксис:

comp [файл1 ] [файл2 ] [/d ] [/a ] [/l ] [/n= кол_строк ] [/c ]

Чтобы сравнить содержимое каталога C:\Reports с содержимым каталога резервных копий \\Sales\Backup\April , введите следующую команду:

comp c:\reports \\sales\backup\april

Чтобы сравнить первые десять строк файлов в каталоге \Invoice и вывести результат в десятичном формате, введите следующую команду:

comp \invoice\*.txt \invoice\backup\*.txt /n=10 /d

compact.exe

Местонахождение: WINDOWS\system32

Описание: Программа сжатия файлов - File Compress Utility

Вывод сведений или изменение уплотнения файлов и каталогов в разделах NTFS. Запущенная без параметров команда compact выводит сведения об уплотнении файлов в текущем каталоге.

Описание программы есть в Справке Windows

Синтаксис:

compact [{/c|/u}] ] [имя_файла[...]]

control.exe

Местонахождение: Windows\system32

Описание: Панель управления Windows - Windows Control Panel

Данная команда служит для запуска апплетов Панели управления

Советы: Как автоматихировать вход в систему

Реестр: Запрет за запуск Панели управления и ее апплетов

convert.exe

Местонахождение: Windows\system32

Описание: File System Conversion Utility

Утилита командной строки служит для преобразования томов с файловой системой FAT и FAT32 в тома с файловой системой NTFS.

Синтаксис:

convert [том] /fs:ntfs

cscript.exe

Местонахождение: Windows\system32

Описание: Microsoft (r) Console Based Script Host

Сервер сценариев cscript.exe является консольным вариантом, предназначенный для взаимодействия с пользователем через командную строку (в отличии от GUI-приложения wscript.exe).

Синтаксис:

cscript [имя_сценария] [параметры_сервера] [аргументы_сценария]

Описание параметров есть в справке Windows

cacls.exe

Местонахождение: Windows\system32

Описание: Изменение таблиц управления доступом - Control ACLs Program

Программа служит для просмотра или изменения файлов избирательных таблиц управления доступом (DACL).

Описание программы есть в справке Windows

Вывод, задание и удаление переменных среды cmd.exe.

SET [переменная=[строка]]

переменная Имя переменной среды.

строка Строка символов, присваиваемая указанной переменной.

Введите SET без параметров для вывода текущих переменных среды.

Изменение команды SET при включении расширенной обработки команд:

Если при вызове указать только имя переменной без знака равенства и значения,

команда SET выведет значения всех переменных, имя которых начинается

с указанной строки. Например:

Эта команда выведет значения всех переменных, имена которых начинаются с "P".

Если имя переменной не найдено в текущей среде, при возврате команда SET

установит значение ошибки ERRORLEVEL 1.

Команда SET не допускает использование знака равенства в имени

переменной среды.

Команда SET поддерживает два дополнительных ключа:

SET /A выражение

SET /P variable=

Ключ /A указывает, что строка справа от знака равенства является числовым

выражением, значение которого вычисляется. Обработчик выражений очень

прост и поддерживает следующие операции, перечисленные в порядке убывания

приоритета:

() - группировка

! ~ - - унарные операторы

* / % - арифметические операторы

Арифметические операторы

<< >> - двоичный сдвиг

& - двоичное И

^ - двоичное исключающее ИЛИ

| - двоичное ИЛИ

= *= /= %= += -= - присвоение

&= ^= |= <<= >>=

Разделитель операторов

При использовании любых логических или двоичных операторов необходимо

заключить строку выражения в кавычки. Любые нечисловые строки в выражении

рассматриваются как имена переменных среды, значения которых преобразуются

в числовой вид перед использованием. Если переменная с указанным именем

не определена в системе, вместо нее подставляется нулевое значение. Это

позволяет выполнять арифметические операции со значениями переменных среды,

причем не нужно вводить знаки % для получения значений. Если команда

SET /A вызывается из командной строки, а не из пакетного файла, она выводит

окончательное значение выражения. Слева от любого оператора присваивания

должно стоять имя переменной среды. Числовые значения рассматриваются как

десятичные, если перед ними не стоит префикс 0x для шестнадцатеричных чисел,

и 0 для восьмеричных чисел. Например, числа 0x12,

и 022 обозначают десятичное число 18. Обратите внимание на запись

восьмеричных числе: 08 и 09 не являются допустимыми числами, так как в

восьмеричной системе исчисления цифры 8 и 9 не используются.

Ключ /P позволяет установить значение переменной для входной строки, введенной

пользователем. Показывает указанное приглашение promptString перед чтением

введенной строки. Приглашение promptString может быть пустым.

Подстановка переменной среды может быть расширена следующим образом:

%PATH:str1=str2%

расширит действие переменной среды PATH, заменяя каждое вхождение "str1" в

расширенном результате на "str2". "str2" может быть пустой строкой для

эффективного удаления вхождений "str1" из расширенного вывода. "str1" может

начинаться со звездочки, и в этом случае это будет соответствовать любому

началу расширенного вывода до первого вхождения оставшейся части "str1".

Можно также использовать строки расширения.

расширит действие переменной среды PATH, затем использует только 5

символов, которые начинаются с 11-го символа (пропустив 10) расширенного

результата. Если длина не указана, по умолчанию используется оставшееся

значение переменной. Если оба значения (длина и число пропускаемых символов)

отрицательны, следующим используемым значением будет длина значения переменной

среды, добавленной к указанному значению пропуска или указанной длины.

извлечет последние 10 символов переменной PATH.

извлечет все символы переменной PATH, за исключением 2-х последних.

Наконец, добавлена поддержка связывания времени выполнения для переменных среды

окружения. По умолчанию эта поддержка отключена. Ключ /V командной строки

CMD.EXE позволяет включать и выключать ее. Для вызова справки, наберите CMD /?

Связывание времени выполнения для переменных среды окружения полезно при обходе

ограничений раннего связывания, которое происходит при первом чтении текстовой

строки, а не при ее выполнении. Следующий пример демонстрирует возникающую

проблему при использовании раннего связывания переменных:

set VAR=before

If "%VAR%" == "before" (

if "%VAR%" == "after" @echo Тело внутреннего оператора сравнения

Данное сообщение не будет выводиться, т.к. %VAR% в ОБОИХ выражениях IF

подставляется в момент первого использования в первом IF, в том числе и в тело

первого ветвления IF, которое является составным выражением. В IF внутри

составного выражения в действительности сравниваются значения "before" и

"after", что заведомо ложно. Следующий пример демонстрирует подобную ошибку:

set LIST=

For %i in (*) do set LIST=%LIST% %i

в данном случае список файлов текущей папки никогда не будет построен. Вместо

этого, значением переменной LIST будет имя последнего найденного файла.

И вновь, это случилось потому, что %LIST% подставляется всего один раз -

в момент обработки выражения FOR, когда список еще пуст.

Фактически, приведенный фрагмент эквивалентен следующему примеру:

for %i in (*) do set LIST= %i

в котором имя последнего найденного файла сохраняется в переменной LIST.

Связывание времени выполнения для переменных среды окружения происходит при

использовании специального символа (восклицательного знака), обозначающего

проведение сопоставления во время выполнения. Если включена поддержка связывания

времени выполнения, то для достижения ожидаемых результатов приведенные выше

фрагменты должны быть изменены следующим образом:

set VAR=before

If "%VAR%" == "before" (

Set VAR=after

If "!VAR!" == "after" @echo Тело внутреннего оператора сравнения

Set LIST=

For %i in (*) do set LIST=!LIST! %i

При включенной расширенной обработке команд доступны несколько переменных

среды, которые не отображаются в списке, отображаемом при вызове команды SET.

Значения этих переменных вычисляются динамически каждый раз при их извлечении.

Если пользователь явно задает переменные с одним из этих имен,

то это определение перекрывает соответствующее динамическое определение,

описанное ниже:

%CD% - раскрывается в строку текущей директории.

%DATE% - раскрывается в текущую дату, используя тот же формат команды DATE.

%TIME% - раскрывается в текущую дату, используя формат команды TIME.

%RANDOM% - раскрывается в случайное десятичное число между 0 и 32767.

%ERRORLEVEL% - раскрывается в текущее значение ERRORLEVEL

%CMDEXTVERSION% - раскрывается в текущее значение версии

расширенной обработки команд.

%CMDCMDLINE% - раскрывается в исходную командную строку, которая вызвала

командный процессор.

div.main {margin-left: 20pt; margin-right: 20pt}
Консольные команды Windows NT

Изначально многие пользователи 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 [ команда]
/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) - Разрешение/запрет отложенного расширения переменных среды с применением символа "!" в качестве разделителя. Например, /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_MACHINESoftwareMicrosoftCommand ProcessorAutoRun
и/или
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorAutoRun
и если одна из них или обе они присутствуют, то сначала выполняются они.
По умолчанию расширенная обработка команд включена. Чтобы запретить расширенную обработку для конкретного вызова, используется ключ /E:OFF.
Можно включить или отключить расширенную обработку команд для всех вызовов CMD.EXE на данном компьютере или для данного пользователя, с помощью REGEDT32.EXE задав значения REG_DWORD в системном реестре для разделов:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorEnableExtensions
и/или
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorEnableExtensions,
равными 0x1 или 0x0. Параметры пользователя перекрывают параметры компьютера.
Ключи командной строки, в свою очередь, перекрывают параметры реестра.
Отложенное расширение переменных среды по умолчанию не включено. Его можно включить или отключить для конкретного вызова CMD.EXE с помощью ключей /V:ON или /V:OFF, или же с помощью REGEDT32.EXE задав значения REG_DWORD в системном реестре для разделов:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorDelayedExpansion
и/или
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorDelayedExpansion
равными 0x1 или 0x0. Параметры пользователя, как уже говорилось выше, перекрывают параметры компьютера, также и ключи командной строки, в свою очередь, перекрывают параметры реестра.
Если отложенное расширение переменных среды включено, то символ "!" (восклицательный знак) может использоваться для замены текущего значения переменной среды во время выполнения.
Включение/выключение отложенного расширения переменных среды для всех вызовов CMD.EXE на данном компьютере или для данного пользователя возможно с помощью REGEDT32.EXE при значении REG_DWORD в системном реестре для следующих разделов:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorCompletionChar,
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorPathCompletionChar
и/или
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorCompletionChar,
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorPathCompletionChar,
установив их шестнадцатеричные значения равными коду управляющего символа, используемого для конкретной функции (например, 0x4 для Ctrl-D или 0x6 для Ctrl-F). Опять же, параметры пользователя перекрывают параметры компьютера; ключи командной строки, в свою очередь, перекрывают параметры реестра.
Завершение имен файлов и папок также не включено по умолчанию. Это можно исправить с помощью ключей /F:ON или /F:OFF.
Если завершение включено с помощью ключа командной строки /F:ON, то используются два управляющих символа: Ctrl-D для имен папок и Ctrl-F для имен файлов. Чтобы отключить конкретный символ завершения в системном реестре, в качестве кода специального символа используется шестнадцатеричное значение символа пробела (0x20).
Завершение вызывается при вводе одного из этих двух специальных символов. Функция завершения берет строку пути слева от точки ввода, дописывает к ней символ шаблона, если таковой отсутствует, а затем строит список путей, которые соответствуют полученному определению. После этого выводится первый элемент этого списка соответствующих путей. Если же список пуст, то подается звуковой сигнал и ничего не выводится.
После этого повторный ввод того же самого специального символа приводит к циклическому перебору всех соответствующих путей. Нажатие клавиши при вводе управляющего символа позволяет просматривать список путей в обратном порядке. Если изменить выведенный путь, а затем снова ввести управляющий символ, сохраненный список очищается и строится новый список путей. То же самое происходит, если переключиться с одного символа завершения на другой. Единственное отличие при использовании символа завершения файла состоит в том, что при этом для построения списка соответствия берется и путь, и имя файла, а при использовании символа завершения папки - только путь. Если символ завершения используется в одной из встроенных команд манипулирования папками (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 - Номер версии Windows XP;
$_ - Возврат каретки и перевод строки;
$$ - $ (символ доллара).
Когда расширенная обработка команд включена, то команда PROMPT поддерживает следующие дополнительные символы форматирования:
$+ - отображение нужного числа знаков плюс (+) в зависимости от текущей глубины стека каталогов PUSHD, по одному знаку на каждый сохраненный путь;
$M - отображение полного имени удаленного диска, связанного с именем текущего диска, или пустой строки, если текущий диск не является сетевым. Например, если диск E: подключен к сетевому ресурсу \ServerPrograms, то при команде PROMT $M$P$G формат приглашения командной строки будет следующий: \ServerPrograms E:>.

Командная строка или как её ещё называют cmd в операционной системе Windows 8 такая же как и в младших версиях Windows7, Windows Vista, Windows хр, отсюда следует что одни и те же команды одинаково работают во всех версиях.

Итак давайте для начала разберёмся как нам запустить командную строку. Для этого у вас должен быть работающий компьютер с операционной системой.

Некоторым командам если вы работаете через учётную запись обычного пользователя для выполнения бывает недостаточно прав в целях безопасности, поэтому всегда запускайте командную строку с правами администратора. Существует 2 способа запуска командной строки:

В появившемся окошке пишем cmd,нажимаем Ок.

Запустится окно командной строки с чёрным фоном.

2) Более быстрый способ: через горячие клавиши Win+R,здесь также в появившемся окошке пишем cmd,нажимаем ок.

В windows 8 вы можете воспользоваться только 2 способом, так как там нет меню Пуск. Напишем нашу первую команду help которая выведет список всех доступных команд с краткими пояснениями.

Список всех существующих команд командной строки Windows:

ASSOC Печать на экран или модификация сопоставлений по расширениям имен файлов.
ATTRIB Просмотр и модификация свойств файлов.
BREAK Блокирует или разблокировывает расширенную обработку CTRL+C в системе DOS.
BCDEDIT Устанавливает свойства в базе данных загрузки, которая позволяет управлять начальной загрузкой.
CACLS Выводит данные и изменяет списки управления доступом (ACL) к файлам.
CALL Вызывает один пакетный файла из другого, а также может передавать входные аргументы.
CD
CHCP Вывод или задание кодировки.
CHDIR Выводит название или перемещает к другой папке.
CHKDSK Диагностика накопителя на ошибки.
CHKNTFS Показывает или изменяет диагностику накопителя во время загрузки.
CLSО чистка дисплея от всех символов.
CMD Запускает программу командной строки Windows. На одном компьютере их можно запустить бесконечное количество. Они будут работать независимо друг от друга.
COLOR Изменяет и устанавливает основной фон окна и самих шрифтов.
COMP Показывает различия и сравнивает содержимое двух файлов.
COMPACT Изменяет и показывает сжатие файлов в NTFS.
CONVERT Изменяет дисковые тома FAT в NTFS. Текущий диск изменить не удастся.
COPY Создаёт копию файла или файлов и помещает их в указанное место.
DATE Показывает или устанавливает текущую дату.
DEL Уничтожает один или несколько файлов сразу.
DIR Показывает имена файлов и папок с их датой создания,находящихся в текущей или указанной в параметрах папки.
DISKCOMP Сравнивает и показывает различия 2 гибких накопителей.
DISKCOPY Создаёт копию содержимого одного гибкого накопителя на другой.
DISKPART Показывает и изменяет свойств раздела диска.
DOSKEY Изменяет и повторно вызывает командные строки; создаёт макросы.
DRIVERQUERY Отображает сведения о «положении дел» и атрибутах драйвера устройства.
ECHO Выводит текстовую информацию и меняет режим отображения команд на экране.
ENDLOCAL Подводит к концу локализацию среды для пакетного файла.
ERASE Уничтожает файл или файлы.
EXIT Прекращает работу программы командной строки
FC Показывает различия двух файлов или двух наборов файлов а также сравнивает их
FIND Осуществляет поиск текстовой строки в файлах либо в одном файле.
FINDSTR Расширенный поиск текстовых строк в файлах.
FOR Цикл. Повторяет выполнение одной и той же команды указанное количество раз
FORMAT Форматирование накопителя для работы с Windows.
FSUTIL Показывает и устанавливает атрибуты файловой системы.
FTYPE Даёт возможность изменить и просмотреть типы файлов, которые в основном применяются при сопоставлении по расширениям имен файлов.
GOTO Передаёт управление к другой указанной команде.
GPRESULT Выводит сведения о групповой политике для компьютера или пользователя.
GRAFTABL Даёт возможность Windows показывать расширенный набор символов в графическом режиме.
HELP Выводит все данные о существующих командах Windows.
ICACLS Показывает, модифицирует, архивирует либо восстанавливает списки ACL для файлов и папок.
IF Выполняет команды по заданному условию.
LABEL Создаёт, модифицирует и уничтожает метки тома для накопителей.
MD Создаёт пустой каталог.
MKDIR Создаёт пустой каталог.
MKLINK Cоздаёт символические и жесткие ссылки
MODE Настраивает системные устройства.
MORE Последовательно выводит информацию по блокам размером в один экран.
MOVE Перемещает файлы из одного места в другое.
OPENFILES Показывает файлы, которые открыты на общей папке удаленным юзером.
PATH Выводит или задаёт полный путь к исполняемым файлам.
PAUSE Прекращает выполнение команд командной строки и выводит информирующий текст.
POPD Восстанавливает предыдущее значение активной папки, которое было сохранено посредством команды PUSHD.
PRINT Выводит на печать содержимое текстового файла.
PROMPT Модифицирует приглашение в командной строке Windows.
PUSHD Сохраняет значение активной папки и переходит к другой папке.
RD Уничтожает каталог.
RECOVER Возрождает данные, способные читаться, с плохого или поврежденного винчестера.
REM Помещает комментарии в пакетные файлы и файл CONFIG.SYS.
REN Меняет название как файлов так и папок.
RENAME Аналогичен команде REN.
REPLACE Меняет файлы местами.
RMDIR Уничтожает каталог.
ROBOCOPY Продвинутый инструмент для копирования файлов и целых папок
SET Показывает, устанавливает и уничтожает переменные среды Windows.
SETLOCAL Производит локализацию изменений среды в пакетном файле.
SC Даёт возможность работать со службами
SCHTASKS Позволяет запускать любые программы и последовательно выполнять нужные команды по заданному плану
SHIFT Меняет позицию (сдвиг) подставляемых параметров для пакетного файла.
SHUTDOWN Завершает работу компьютера.
SORT Сортирует ввод по заданным параметрам.
START Запускает программу или команду в новом окне.
SUBST Назначение заданному пути имени накопителя.
SYSTEMINFO Выводит данные об операционной системе и конфигурации компьютера.
TASKLIST Показывает список всех запущенных процессов с их идентификаторами.
TASKKILL “Убивает” или останавливает процесс.
TIME Устанавливает и выводит системное время.
TITLE Задаёт название окну для текущего сеанса интерпретатора командных строк CMD.EXE
TREE Выводит директории накопителя в удобном наглядном виде.
TYPE Выводит содержимое текстовых файлов.
VER Выводит краткие сведения о версии Windows.
VERIFY Проверяет на ошибки записи файла на накопителе.
VOL Выводит на дисплей метки и серийный номер тома накопителя.
XCOPY Создаёт копию файлов.
WMIC Выводит WMI в командной строке.