SetX - создание или изменение переменных среды WindowsПервоначально, утилита SetX.exe входила в состав Windows 2000 Resource Kit в качестве дополнительного средства системного администрирования, но начиная с Windows Vista - входит в стандартный пакет поставки системы. Используются три варианта синтаксиса команды SetX: Синтаксис 1: SETX [/S система [/U [домен\] пользователь [/P [пароль]]]] var значение [/M] Синтаксис 2: SETX [/S система [/U [домен\] пользователь [/P [пароль]]]] var /K путь [/M] Синтаксис 3: SETX [/S система [/U [домен\] пользователь [/P [пароль]]]] /F файл {var {/A x,y | /R x,y строка}[/M] | /X} [/D разделители] Параметры командной строки: /S система - Имя или IP-адрес удаленного компьютера. Если не указан, то команда выполняется по отношению к локальному компьютеру. /U домен\] пользователь - Пользовательский контекст, в котором должна выполняться эта команда. /P пароль - Пароль для этого пользовательского контекста. var - Задаваемая переменная среды. значение - Значение, назначаемое переменной среды. /K путь - Задание переменной по информации, cодержащейся в параметре реестра. Путь должен задаваться в формате куст\раздел\...\параметр. Например, HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Control\ timeZoneInformation\ StandardName. /F файл - Имя текстового файла, который следует использовать. /A x,y - Задание абсолютных координат файла (строка X, элемент Y) как параметров поиска в файле. /R x,y строка - Задание координат относительно значения "строка" как параметров поиска. /M - Указание создания переменной среды на системном уровне (HKEY_LOCAL_MACHINE). По умолчанию переменная среды создается в разделе HKEY_CURRENT_USER на уровне пользователя. /X - Отображение содержимого файла с координатами x,y. /D разделители - Указание дополнительных разделителей, таких как "," или "\". Встроенные разделители: символы пробела, табуляции, возврата каретки и перевода строки. Дополнительным разделителем может быть любой знак ASCII. Максимальное число разделителей, включая встроенные, равняется 15. Вывод справки по использованию. Примечания. 1) SETX записывает переменные в главную среду в реестре. 2) На локальном компьютере переменные, созданные или измененные данным средством, будут доступны в будущем окне командной строки, но не в текущем окне CMD.exe. 3) На удаленном компьютере переменные, созданные или измененные данным средством, будут доступны со следующего сеанса входа. 4) Допустимые типы параметров реестра: REG_DWORD, REG_EXPAND_SZ, REG_SZ, REG_MULTI_SZ. 5) Поддерживаемые кусты: HKEY_LOCAL_MACHINE (HKLM), HKEY_CURRENT_USER (HKCU). 6) Разделители определяются с учетом регистра. 7) Значения типа REG_DWORD извлекаются из реестра в десятичном формате. Значения переменных окружения ( Environment variables ) записываются в реестр: Пользовательские переменные - в раздел : HKEY_CURRENT_USER\ Environment Системные переменные - в раздел HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Control\Session Manager \Environment Если значения каких либо переменных изменены в данной сессии командной строки Windows, то изменения вступят в силу только в новом сеансе, после перезапуска CMD ( или PowerShell ). Для изменения системных переменных ( ключ /M ) требуются права администратора ( "Запуск от имени администратора " в Windows 7 и старше). Пользовательские переменные запоминаются в профиле и действительны, для перемещаемого профиля, на любом компьютере домена. Если одно и то же имя переменной имеется в среде пользователя и в среде системы, то значение пользовательской переменной имеет более высокий приоритет. Для редактирования переменных можно использовать панель управления - Панель управления - Система - Дополнительно - Переменные среды ( Control Panel - System - Advanced - Environment Variables ) Для удаления переменных среды можно воспользоваться Панелью управления, удалением ключей с переменными среды редактором реестра или консольной утилитой REG REG delete HKCU\ Environment /V MyVar - удалить пользовательскую переменную MyVar Присвоение переменной пустого значения командой Setx не приводит к удалению ее имени из реестра, что может стать причиной проблем с выполнением некоторых программ. Если например, имеется пользовательская переменная с пустым значением, то по команде SET она не отображается, и при наличии системной переменной с таким же именем, ее значение станет недоступным из-за более высокого приоритета пользовательской переменной. Поэтому, во избежание конфликтов желательно не оставлять в реестре мусор из переменных с неприсвоенными значениями. Примеры использования Setx:SETX MACHINE COMPAQ - создать на локальном компьютере переменную среды пользователя с именем MACHINE, принимающую значение COMPAQ. Для просмотра значений переменных можно воспользоваться командой echo: echo %MACHINE% - отобразить значение переменной MACHINE Можно также использовать команду SET в цепочке с командой поиска текста FIND: set | Find /i "machine" setx.exe MACHINE "Asustek Computer" /M - создать на локальном компьютере системную переменную MACHINE, принимающую значение Asustek Computer. Если значение переменной содержит пробелы, то оно заключается в двойные кавычки. Setx MYPATH "" - сбросить значение переменной окружения MYPATH ( сделать пустым ) SETX MYPATH "%PATH%" - создать на локальном компьютере пользрвательскую переменную окружения с именем MYPATH , принимающую текущее значение переменной PATH – пути поиска исполняемых файлов, сформированные на момент выполнения команды, например, Path= С:\Program Files\Far;С:\Program Files\NVIDIA Corporation\PhysX\ Common;С:\WINDOWS\ system32;С:\WINDOWS; С:\WINDOWS\ System32\Wbem;. SETX MYPATH ~PATH~ - в качестве значения переменной будет записана строка, в которой символы ~ будут заменены на символы %, т.е в качестве значения переменной MYPATH будет записана строка %PATH% SETX /S Server /U Mydomain\ Admin /P AdmPass MYPATH "%PATH%" - установить на удаленном компьютере Server значение переменной окружения MYPATH равное текущему значению переменной PATH локального компьютера. Для подключения к удаленному компьютеру используется имя пользователя Admin в домене Mydomain и пароль AdmPass SETX TZONE /K HKEY_LOCAL_MACHINE\ System\ CurrentControlSet\ Control\timeZoneInformation \StandardName - установить значение среды TZONE равным содержимому ключа реестра HKLM\System\ CurrentControlSet\ Control\ timeZoneInformation\ StandardName При выполнении команды SetX отображается извлеченное значение ключа реестра и результат записи нового значения переменной: Извлечено значение: "@tzres.dll,-912". Успех. Указанное значение сохранено. setx /s 192.168.0.1 /U admin /P Admpass BUILD /K "HKLM\Software\ Microsoft\ Windows NT\CurrentVersion \ CurrentBuildNumber" - создать на удаленном компьютере с IP-адресом 192.168.0.1 переменную BUILD, принимающую значение ключа реестра HKLM\Software\ Microsoft\Windows NT\ CurrentVersion\ CurrentBuildNumber SETX /F ipconfig.out /X - разбор содержимого текстового файла ipconfig.out с выводом координат каждого поля в виде x,y – (номер строки, номер колонки) . Нумерация строк и колонок начинается с 0. Для того, чтобы получить наглядное представление об обработке содержимого текстового файла, попробуйте создать текстовый файл следующего содержания: a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 c1 c2 c3 c4 c5 d1 d2 d3 d4 d5 Результат обработки этого содержимого командой SetX: (0,0 a1)(0,1 a2)(0,2 a3)(0,3 a4)(0,4 a5) (1,0 b1)(1,1 b2)(1,2 b3)(1,3 b4)(1,4 b5) (2,0 c1)(2,1 c2)(2,2 c3)(2,3 c4)(2,4 c5) (3,0 d1)(3,1 d2)(3,2 d3)(3,3 d4)(3,4 d5) Таким образом, элемент (0,0 a1) - это координаты 0,0, которым соответствует значение a1 SETX Key1 /F file.out /A 1,2 присвоить переменной Key1 значение из текстового файла file.out соответствующее содержимому второй строки третьей колонки – в данном примере - b3 SETX Key2 /F file.out /R 0,2 b3 присвоить переменной Key2 значение поля из текстового файла. Для поиска в текстовом файле используется шаблон b3 и значение извлекается по координатам 0,2 относительно найденного b3, т.е. в данном примере – это будет b5 ( Смещение по строкам= 0, смещение по колонкам = 2) |
|
|