Главная

Sunday, 5 May 2024

Используем SetX.

Всем привет.

В отличие от известной SET утилита SETX предназначена для создания или изменение переменных среды в системной среде. Переменные можно задавать с помощью аргументов, параметров реестра или ввода из файла.

Три способа выполнения SetX:

SETX [/S <система> [/U [<домен>\]<пользователь> [/P [<пароль>]]]] var <значение> [/M]

SETX [/S <система> [/U [<домен\>]<пользователь> [/P [<пароль>]]]] var /K <путь> [/M]

SETX [/S <система> [/U [<домен\>]<пользователь> [/P [<пароль>]]]] /F <файл> {var {/A x,y | /R x,y строка}[/M] | /X} [/D <разделители>]

Параметры

/S <система> Подключаемый удаленный компьютер.

/U [<домен>\]<пользователь> Пользовательский контекст, в котором должна выполняться эта команда.

/P [<пароль>] Пароль для этого пользовательского контекста.

var Задаваемая переменная среды.

<значение> Значение, назначаемое переменной среды.

/K <путь> Задание переменной по информации, содержащейся в параметре реестра. Путь должен задаваться в формате куст\раздел\...\параметр.

/F <файл> Имя текстового файла, который следует использовать.

/A x,y Задание абсолютных координат файла (строка X, элемент Y) как параметров поиска в файле. (строка X, элемент Y) как параметров поиска в файле.

/R x,y строка Задание координат относительно значения "строка" как параметров поиска.

/M Указание создания переменной среды на системном уровне (HKEY_LOCAL_MACHINE). По умолчанию переменная среды создается в разделе HKEY_CURRENT_USER на уровне пользователя.

/X Отображение содержимого файла с координатами x,y.

/D <разделители> Указание дополнительных разделителей, таких как "," или "\". Встроенные разделители: символы пробела, табуляции, возврата каретки и перевода строки. Дополнительным разделителем может быть любой знак ASCII. Максимальное число разделителей, включая встроенные, равняется 15.

/? Вывод справки по использованию.

Примечания

1) на локальном компьютере переменные, созданные или измененные данным средством, будут доступны в будущем окне командной строки, но не в текущем сеансе CMD.exe!

2) на удаленном компьютере переменные, созданные или измененные данным средством, будут доступны со следующего сеанса входа.

3) SETX записывает переменные в реестре: в HKCU\Environment, и в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment если использовали ключ /m.

4) допустимые типы параметров реестра: REG_DWORD, REG_EXPAND_SZ, REG_SZ, REG_MULTI_SZ.

5) поддерживаемые кусты: HKEY_LOCAL_MACHINE (HKLM), HKEY_CURRENT_USER (HKCU).

6) разделители определяются с учетом регистра.

7) значения типа REG_DWORD извлекаются из реестра в десятичном формате.

Примеры

SETX MY_SUPER_VAR NEW

SETX MY_SUPER_VAR OLD /M

SETX /S Mycomp /U Durakov /P 1q2w3e4r MACHINE COMPAQ

Если значение переменной содержит пробелы и (или) разделители, то оно должно быть заключено в кавычки.

SETX My_var "hello, world"

SETX JAVA_HOME "C:\Program Files\Java\jdk1.6.0_31" /M


Из фокусов

Команда SETX может быть использована для извлечения значения из текстового файла фиксированной структуры

SETX My_var /F ping_localhost.out /A 1,3

Файл ping_localhost.out в данном случае был получен в результате выполнения команды

ping localhost<ping_localhost.out

Следует отметить, что содержимое такого файла может значительно отличаться, например, при другой локализации Windows. Для облегчения расчета абсолютных координат файла (параметр /A строка X, элемент Y) удобно использовать параметр /X (для небольших файлов)

SETX /F ping_localhost.out /X

На экран будет выведены абсолютные координаты и значения всех элементов файла. Вывод может быть весьма объемным. Что бы уменьшить вывод можно использовать findstr для фильтрации результатов.

setx /f ping_localhost.out /x /d "=" | findstr "TTL"

Также важен тот факт что имя переменной созданное в SETX и в SET может совпадать, хотя для ОС это будут разные переменные.

Удачи.

No comments:

Post a Comment

А что вы думаете по этому поводу?