Команда SET — работа с переменными среды Windows
    Команда SET используется для просмотра и изменения переменных среды окружения в командной строке Windows. Переменные окружения — это переменные, принимаемые значения которых характеризуют среду, в которой выполняется текущая программа — пути системных файлов, сведения об аппаратных средствах, каталоги пользователя и т.п. Значения переменных среды формируются в процессе загрузки Windows, регистрации пользователя в системе, при выполнении отдельных процессов или с помощью команды SET . Для просмотра значения, принимаемого конкретной переменной можно воспользоваться командой :
SET переменная
SET PATH — отобразить значение переменной PATH
Для создания новой переменной, или изменения значения существующей, используется команда :
переменная — Имя переменной среды.
строка — Строка символов, присваиваемая указанной переменной.
SET MyName=Vasya — установить значение переменной MyName
SET path=C:\progs;%path% — изменить значение переменной PATH , добавив в начало строки C:\progs
Значение, принимаемое переменной , доступно для обработки в командных файлах, при использовании ее имени, заключенного в знаки процента — % . Например команда выдачи текста на дисплей ECHO в виде:
ECHO date — выведет на экран слово «date», а команда
ECHO %date% выведет на экран значение переменной date , т.е. текущую дату в формате операционной системы.
Команда SET без параметров используется для вывода текущих значений переменных среды.
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\Usr\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=TEST7
ComSpec=C:\windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\Usr
LOCALAPPDATA=C:\Users\Usr\AppData\Local
LOGONSERVER=\\TEST7
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\windows\system32;C:\windows;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS; .VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 3 Stepping 4, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0304
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\windows\system32\Windows PowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
SystemDrive=C:
SystemRoot=C:\windows
TEMP=C:\Users\Usr\AppData \Local\Temp
TMP=C:\Users\Usr\AppData \Local\Temp
USERDOMAIN=test7
USERNAME=Usr
USERPROFILE=C:\Users\Usr
windir=C:\windows
Кроме переменных, отображаемых в списке, при вызове команды SET, существуют и другие, значения которых изменяется динамически:
%CD% — принимает значение текущего каталога.
%DATE% — принимает значение текущей даты.
%TIME% — принимает значение текущего времени.
%RANDOM% — значение случайного числа в диапазоне между 0 и 32767.
%ERRORLEVEL% — текущее значение ERRORLEVEL, специальной переменной, которая используется в качестве признака результата выполнения программы.
%CMDEXTVERSION% значение версии расширенной обработки команд CMD.EXE.
%CMDCMDLINE% — раскрывается в исходную командную строку, которая вызвала командный процессор .
Если при вызове команды SET указать только часть имени, то будет выведен список переменных, имена которых начинаются с указанной строки. Например:
SET U — выведет значения всех переменных, имена которых начинаются с ‘U’.
Команда SET поддерживает два дополнительных ключа:
SET /A выражение
SET /P variable=[promptString]
Ключ /A указывает, что строка справа от знака равенства является числовым выражением, значение которого вычисляется. Обработчик выражений очень прост и поддерживает следующие операции, перечисленные в порядке убывания приоритета:
() * / % + — > & ^ | = , | — группировка — арифметические операторы — арифметические операторы — двоичный сдвиг — двоичное И — двоичное исключающее ИЛИ — двоичное ИЛИ — присвоение — разделитель операторов |
При использовании любых логических или двоичных операторов необходимо заключить строку выражения в кавычки. Любые нечисловые строки в выражении рассматриваются как имена переменных среды, значения которых преобразуются в числовой вид перед использованием. Если переменная с указанным именем не определена в системе, вместо нее подставляется нулевое значение. Это позволяет выполнять арифметические операции со значениями переменных среды, причем не нужно вводить знаки % для получения значений. Если команда SET /A вызывается из командной строки, а не из пакетного файла, она выводит окончательное значение выражения. Слева от любого оператора присваивания должно стоять имя переменной среды. Числовые значения рассматриваются как десятичные, если перед ними не стоит префикс:
0x — для шестнадцатеричных чисел
0 — для восьмеричных чисел.
Пример использования префиксов:
SET /A REZ=0xA+012
ECHO %REZ%
В данном командном файле значение переменной REZ вычисляется сложением числа 10, представленного в шестнадцатеричном виде ( 0xA ) и числа 10 , представленного в восьмеричном ( 012 ).
Ключ /P позволяет установить значение переменной для входной строки, введенной пользователем. Показывает указанное приглашение promptString перед чтением введенной строки. Приглашение promptString может быть пустым. Данный ключ позволяет организовать диалог с пользователем в командном файле:
@ECHO OFF
SET /P NAME=Введите имя пользователя:
SET /P pass=Введите пароль:
ECHO Имя пользователя — %NAME% , Пароль — %PASS%
В командных файлах довольно часто требуется работать с частью значения, принимаемого переменной, для чего используются подстановочные значения:
переменная:строка1=строка2 — заменяет в принимаемом значении переменной строку1 на строку2
Следующий командный файл использует замену символа «точка» на символ «тире» в значении переменной, соответствующем текущей дате:
@ECHO OFF
set tm=%DATE%
ECHO Дата1 = %tm%
SET tm=%DATE:.=-%
ECHO Дата2 = %tm%
Для выделения части значения, принимаемого переменной, используется следующая конструкция:
x,y — где x — число пропускаемых символов от начала строки, а y — количество символов, используемых в качестве значения переменной.
Следующий пример использует отображение текущего времени без секунд и долей секунд (только первые 5 символов из стандартного значения переменной TIME):
@ECHO OFF
set tm=%TIME%
ECHO Время1 = %tm%
SET tm=%TIME:
0,5%
ECHO Время2 = %tm%
Если значение y ( длина ) не указана, то используется оставшееся до конца строки значение переменной. Если значение y отрицательно, то используется часть строки значения переменной от конца. Предыдущий пример можно изменить , указав, что в принимаемом значении времени отбрасываются 6 символов от конца:
@ECHO OFF
set tm=%TIME%
ECHO Время1 = %tm%
SET tm=%TIME:
Возможно использование число пропусков не задано, и используется отрицательное число, то принимаемое значение будет частью переменной от конца строки:
-10% — извлечет последние 10 символов переменной PATH
. Нулевое значение можно не указывать, сохраняя формат подстановки:
0,-2% эквивалентно %PATH:
При использовании переменных окружения в командных файлах существует определенное ограничение, связанное с тем фактом, что присваиваемое значение остается без изменения при его модификации внутри группы команд, задаваемой скобками, например в командах IF или FOR . Для обхода данного ограничения используется запуск командного процессора с параметром /V:ON и вместо знаков процента, для получения принимаемого переменной значения, используются восклицательные знаки. Кроме того, существует возможность использовать стандартный запуск командного процессора, но с локальным включением данного режима командой :
Разница в результатах использования значений переменных довольно наглядно демонстрируется следующим командным файлом:
Setlocal EnableDelayedExpansion
@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 ( Windows CMD ) с описанием и примерами.
Командная строка Windows является стандартным средством диагностики, настройки и управления компонентами операционной системы и прикладным программным обеспечением. В отличие от графической среды пользователя, командная строка является более гибким и универсальным инструментом, позволяющим решать многие задачи администрирования системы стандартными средствами Windows без установки дополнительного программного обеспечения.
Способы запуска командной строки
Командная строка Windows может быть запущена как и любое другое стандартное приложение — через Главное меню Windows, с использованием диалога Выполнить (комбинации клавиш Win+R, Win+X), а также с использованием открытия Проводником ( по двойному щелчку ) ярлыка или исполняемого файла C:\WINDOWS\System32\cmd.exe . В результате запуска откроется окно командной строки с приглашением к вводу команд . Приложение cmd.exe часто называют командным процессором или интерпретатором команд, а его основное окно – консолью Windows. Команды консоли представляют собой строку символов, которая может содержать встроенные команды командного процессора (HELP, ECHO и т.п.), имена и пути исполняемых или командных файлов (C:\Windows\System32\ping.exe), а также дополнительные параметры, если они требуются для выполнения конкретной команды (ping.exe yandex.ru). Результаты выполнения команд отображаются в окне консоли Windows и нередко зависят от наличия достаточных прав у текущего пользователя. Для выполнения команд в контексте учетной записи Администратора в операционных системах Windows Vista — Windows 10 необходимо использовать режим Запуск от имени Администратора .
Ссылки на материалы по настройке командной строки и приемах работы с ней размещены в конце страницы.
Справочник по командам CMD Windows
Данная страница представляет собой самый полный документ в русскоязычном сегменте Интернет, содержащий список команд командной строки всех версий Windows. Наименования подавляющего большинства команд являются ссылками и ведут на страницы с подробным их описанием и примерами использования. В разных версиях ОС семейства Windows набор поддерживаемых команд, их параметры командной строки, синтаксис и отображение результатов выполнения могут различаться. Одна и та же утилита командной строки может присутствовать в стандартной поставке одной версии Windows, но отсутствовать в другой, или входить в состав дополнительных средств, как например, Resource Kit или Software Development Kit.
На данной странице представлено описание не только внутренних команд CMD, но и стандартных утилит командной строки, входящих в состав конкретных версии операционной системы (ОС) семейства Windows. Некоторые из приведенных команд устарели, и больше не поддерживаются разработчиком или не имеют смысла в современных операционных системах, что отмечается в описании команды.
Список команд постоянно обновляется и включает в себя все новейшие команды, добавляемые в стандартную поставку при выходе новых версий или обновлений ОС Windows 10.
APPEND — позволяет программам открывать файлы данных из указанных папок так, как будто они находятся в текущей папке.
ARP — просмотр и изменение таблиц ARP (Address Resolution Protocol)
ASSOC — просмотр или изменение сопоставлений расширений файлов приложениям
AT — управление планировщиком задач
ATTRIB — изменение атрибутов файлов
Auditpol — управление политиками аудита.
BASH — командная оболочка BASH в подсистеме Windows для Linux (WSL).
BCDBOOT — копирование в системный раздел файлов загрузки и создание нового хранилища конфигурации загрузки (BCD)
BCDEDIT — редактирование хранилища данных конфигурации загрузки (BCD)
BOOTCFG — редактирование параметров загрузки в файле boot.ini
BOOTIM — вызов меню загрузки и восстановления (Выбор действия) Windows 10
BOOTREC — восстановление загрузочных записей и конфигурации загрузки Windows
BOOTSECT — редактирование загрузочных секторов для обеспечения загрузки NTLDR или BOOTMGR
BREAK — включить или выключить обработку комбинации клавиш CTRL+C в DOS
CACLS — редактирование списков управления доступом к файлам (ACL — Access Control List)
CALL — вызов из командного файла подпрограмм или других командных файлов
CD — смена каталога (Change Directory)
CHANGE — изменение настроек сервера терминалов. Контексты — LOGON, PORT, USER
CHGLOGON — изменение настроек сервера терминалов, аналогично CHANGE LOGON
CHGPORT — изменение настроек сервера терминалов, аналогично CHANGE PORT
CHGUSR — изменение настроек сервера терминалов, аналогично CHANGE USER
CHCP — просмотр или изменение текущей кодовой страницы
CHKDSK — проверка диска (Check Disk)
CheckNetIsolation — управление доступом приложений к интерфейсу замыкания на себя (localhost) в Windows 10
CHKNTFS — проверка признака ошибки файловой системы и управление проверкой диска при загрузке Windows
CHOICE — реализация пользовательского ввода в командном файле
CIPHER — отображение или изменение шифрования файлов на томах NTFS
CLEARMGR — управление очисткой дисков Windows
CLIP — перенаправление вывода утилит командной строки в буфер обмена Windows
CLS — очистка экрана в командной строке
CMD — запуск новой копии интерпретатора командной строки
CMDKEY — создание, отображение, удаление и сохранение имен пользователей и паролей
COLOR — изменение цвета текста и фона в окне CMD
COMMAND — запуск новой копии интерпретатора командной строки MS-DOS
COMP — сравнение содержимого файлов
COMPACT — управление сжатием и распаковкой файлов в разделах NTFS
CONVERT — преобразование файловой системы из FAT в NTFS
COPY — копирование файлов и каталогов
Cscript — сервер сценариев Windows с консольным интерфейсом
DATE — отображение или изменение даты
DEBUG — запуск отладчика DOS-Windows XP
DEL — удаление одного или нескольких файлов
DevCon — управление устройствами в командной строке
DIANTZ — тоже что и MAKECAB, создание архивов .cab.
DIR — отображение списка файлов и каталогов
DISKCOMP — сравнение содержимого двух гибких дисков
DISKCOPY — копирование содержимого одного гибкого диска на другой
DISKPART — управление разделами и дисками из командной строки
DISM — управление компонентами образрв WIM.
DISPDIAG — вывод дампов с диагностической информацией о графической подсистеме.
DJOIN — автономное присоединение компьютера к домену.
DOSKEY — редактирование и повторный вызов команд Windows, создание макросов DOSKey
DRIVERQUERY — отобразить информацию об установленных драйверах.
DxDiag — средство диагностики DirectX.
ECHO — вывод текста на экран консоли
EDIT — запуск текстового редактора
ENDLOCAL — конец локальных изменений переменных окружения в командном файле
ERASE — аналогично команде DEL — удаление файлов
ESENTUTL — обслуживание баз данных Extensible Storage Engine для Windows
EVENTCREATE — запись сообщения в журнал событий Windows
EXIT — выход из процедуры или командного файла
EXPAND — распаковка сжатых файлов CAB-файлов.
EXTRACT — извлечение содержимого, распаковка CAB-файлов в Windows (EXTRAC32)
FC — сравнение содержимого файлов
FIND — поиск строки символов в файле
FINDSTR — поиск строк в файлах с использованием регулярных выражений
FOR — организация циклической обработки результатов выполнения других команд, списков, и строк в текстовых файлах
FORFILES — выполнение указанной команды для каждого файла из заданной группы
FSUTIL — управление файловой системой
FTYPE — просмотр и изменение расширений файлов и сопоставленных им приложений
GETMAC — отображение физического адреса сетевого адаптера (MAC-адреса)
GOTO — команда безусловного перехода в командном файле
GPRESULT — отображение результирующей политики (RSoP)
GPUPDATE — обновление групповых политик.
HELP — вызов справки командной строки Windows
HOSTNAME — отображение имени компьютера
iCACLS — управление списками доступа (ACL)
IF — оператор условного выполнения команд в пакетном файле
IPCONFIG просмотр и управление конфигурацией протокола IP
LABEL — редактирование меток тома дисков
LOGMAN — управление монитором оценки производительности системы
LOGOFF — завершение сеанса пользователя
MAKECAB — создание сжатых файлов формата CAB
MBR2GPT — преобразование дисков MBR в GPT
MEM — вывод справки об использовании памяти в MS-DOS
MD — создание нового каталога
MKLINK — создание символической ссылки на файл или каталог
MODE — конфигурирование системных устройств в среде CMD
MORE — постраничный вывод в консоли
MOUNTVOL — управление точками монтирования томов
MOVE — перемещение файлов и каталогов
MOVEFILE — перемещение или удаление занятых файлов при следующей перезагрузке
MSG — отправка сообщений пользователям.
MSTSC — подключение к удаленному рабочему столу.
NBTSTAT — просмотр статистических данных NETBIOS через TCP/IP (NetBT)
NET — управление ресурсами локальной сети
NETCFG — отображение и изменение конфигурации компонентов сети
NETSH — командная сетевая оболочка (Network Shell)
NETSTAT — отображение статистики сетевых соединений
NSLOOKUP — просмотр данных DNS в командной строке
OPENFILES — управление открытыми по сети или локально файлами
PATH — отображение или изменение путей поиска исполняемых файлов
PATHPING — трассировка маршрута с возможностью оценки качества участков трассы
PAUSE — пауза при выполнении командного файла
PING утилита проверки доступности узла
PKGMGR — управление программными пакетами Windows
PNPUTIL — конфигурирование драйверов устройств PnP
POPD — возврат в каталог, ранее запомненный с помощью команды PUSHD
POWERCFG — настройка параметров системы электропитания Windows
PRINT — печать текстового файла
PROMPT — изменение строки приглашения в консоли
PUSHD — сохранить текущий путь каталога и перейти в указанный
PSR — записать действия пользователя в Windows 7/8/110 ( P roblem S teps R ecorder)
QPROCESS — отобразить состояние процессов
QUERY — опросить состояние процессов и сеансов пользователей
QUSER — отобразить информацию о сеансах пользователей
RASDIAL — управление сеансами удаленного доступа
RASPHONE — управление сеансами удаленного доступа
REAGENTC — адимнистрирование стреды восстановления Windows
RECOVER — восстановление файлов на поврежденном диске
REG — утилита командной строки для работы с реестром Windows
REGEDIT — импорт и экспорт данных реестра Windows
REGSVR32 — регистрация или отмена регистрации DLL
REGINI — управление доступом к разделам реестра
REM — комментарии в командных файлах
REPLACE — замена или добавление файлов в катологах
RESET — сброс сеанса удаленного рабочего стола (RDP сессии)
ROBOCOPY — утилита резервного копирования и синхронизации каталогов (Robust File and Folder Copy)
ROUTE — управление таблицей маршрутизации
RUNAS — запуск приложения от имени другого пользователя
RUNDLL32 — запуск DLL в качестве приложения
SC — управление службами Windows (Service Control)
SCHTASKS — управление планировщиком задач
SCLIST — отображение списка системных служб
SET — отображение и изменение переменных среды окружения Windows
SETLOCAL — установка локальных переменных в командном файле
SETX — утилита для создания системных переменных
SFC — проверка и восстановление системных файлов Windows
SHARE — просмотр, создание и удаление разделяемых в локальной сети ресурсов
SHIFT сдвиг входных параметров для командного файла
SHUTDOWN — выключение или перезагрузка компьютера
SLEEP — задержка по времени в пакетном файле
SLMGR — управление лицензированием программного обеспечения Windows
SORT — сортировка строк в текстовом файле
START — запуск приложения или командного файла
STORDIAG — диагностика системы хранения данных в Windows 10
SUBST — назначение (отмена назначения) каталогу буквы диска
SxSTrace — диагностическое средство трассировки компонент системы
SYSTEMINFO — отображение информации о системе
TAKEOWN — изменение владельца файла или каталога
TAR — архивирование данных архиватором tar в Windows 10
TASKKILL — завершение процессов на локальной или удаленной системе.
TASKLIST — отображение списка выполняющихся приложений и служб Windows
TIME — отображение и установка системного времени
TIMEOUT — задержка в пакетных файлах
TITLE — изменение заголовка окна CMD.EXE
TRACERT — трассировка маршрута к удаленному узлу
TREE — отображение структуры каталога в графическом виде
TSCON — подключение к сессии удаленного рабочего стола (RDP).
TSDISCON — отключение сессии удаленного рабочего стола (RDP).
TSKILL — завершение процессов, адаптированное для среды сервера терминалов (RDP).
TYPE — вывод на экран содержимого текстового файла
TypePerf — вывод сведений о производительности на экран или в журнал
TZUTIL — управление часовыми поясами в среде Windows
VER — отображение версии операционной системы
VERIFY — управление режимом проверки записываемых файлов
VOL — вывод данных метки тома
VSSADMIN — администрирование службы теневого копирования томов.
W32TM — управление службой времени Windows
WAITFOR — организация обмена сигналами между компьютерами
WBADMIN — управление резервным копированием и восстановлением в Windows
WEVTUTIL — управление событиями в Windows
WHERE — определение места расположения файлов
WHOAMI — вывод имени текущего пользователя
WINDIFF — сравнение содержимого файлов
WinMgmt — обслуживание инструментария управления Windows (WMI)
WINRM — удаленное управление Windows из командной строки
WINRS — удаленная командная строка (Remote Shell)
WINSAT — средство проверки производительности Windows
WMIC — выполнение команды WMI в командной строке
WSCollect — получить CAB-файл с копиями журналов Windows 10 на рабочем столе
Wscript — сервер сценариев Windows с графическим интерфейсом
WSL — выполнение команд Linux и конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10
WSLconfig — конфигурирование параметров подсистемы Windows для Linux (WSL) в Windows 10
XCOPY — копирование файлов и папок
Прочие материалы по работе с командной строкой Windows:
Настройка командной строки Windows. — Как изменить цвет фона, цвет символов, размер и расположение окна командной строки. Копирование и вставка текста в окне консоли. Как настроить дополнение имен файлов и каталогов при наборе в командной строке. Использование функциональных клавиш.
Работа с командной строкой Windows — Основные приемы, используемые при работе в командной строке Windows.
Командные файлы Windows — Общие принципы применения переменных среды в командных файлах. Обработка параметров командной строки. Использование меток, переходов и циклическая обработка данных. Практические примеры решения задач администрирования системы.
Запуск приложений от имени администратора без запроса UAC — Как запустить из командного файла приложение или командный файл без запроса системы контроля учетных записей UAC
Работа с сетью в командной строке. — подробное описание команд CMD Windows для работы с сетью и примеры их использования.
Подсистема Linux в Windows 10 — Использование командной строки Linux в Windows 10.