В отличие от известной 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
А что вы думаете по этому поводу?