Поделиться через


setx

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

Note

Эта команда предоставляет только командную строку или программный способ непосредственного и постоянного задания системных значений среды. Переменные системной среды настраиваются вручную через панель управления или через редактор реестра. Команда set , которая является внутренней для интерпретатора команд (Cmd.exe), устанавливает переменные пользовательского окружения только для текущего окна консоли.

Syntax

setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] <variable> <value> [/m]
setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] <variable>] /k <path> [/m]
setx [/s <computer> [/u [<domain>\]<user name> [/p [<password>]]]] /f <filename> {[<variable>] {/a <X>,<Y> | /r <X>,<Y> <String>} [/m] | /x} [/d <delimiters>]

Parameters

Parameter Description
<computer> Указывает имя или IP-адрес удаленного компьютера. Не используйте обратные очки. Значение по умолчанию — имя локального компьютера.
[<domain>\]<user name> Запускает скрипт с учетными данными указанной учетной записи пользователя. Значение по умолчанию — это разрешения системы.
/p [<password>] Указывает пароль учетной записи пользователя, указанный в параметре /u .
<variable> Указывает имя переменной среды, которую требуется задать.
<value> Указывает значение, для которого необходимо задать переменную среды.
<path> Указывает, что переменная устанавливается на основе сведений из раздела реестра. В пути используется следующий синтаксис: \\<HIVE>\<KEY>\...\<Value>. Например, можно указать следующий путь: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName
<filename> Указывает файл, который требуется использовать.
/a <X>,<Y> Задает абсолютные координаты и смещение в качестве параметров поиска.
<X>,<Y> <String> Указывает относительные координаты и смещение от String в качестве параметров поиска.
/m Указывает, чтобы задать переменную в системной среде. Параметр по умолчанию — локальная среда.
/x Отображает координаты файла, игнорируя параметры командной строки /a, /r и /d .
<delimiters> Указывает разделители, такие как , или \ которые будут использоваться в дополнение к четырем встроенным разделителям — SPACE, TAB, ENTER и LINEFEED. Допустимые разделители включают любой символ ASCII. Максимальное число разделителей равно 15, включая встроенные разделители.
/? Отображение справки в командной строке.

Remarks

  • Эта команда аналогична служебной программе UNIX SETENV.

  • Эту команду можно использовать для задания значений переменных пользовательской и системной среды из одного из трех источников (режимов): режима командной строки, режима реестра или режима файлов.

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

  • HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE являются единственными поддерживаемыми ульями. REG_DWORD, REG_EXPAND_SZ, REG_SZ и REG_MULTI_SZ являются допустимыми типами данных RegKey .

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

  • Эту команду нельзя использовать для удаления значений, добавленных в локальные или системные среды. Эту команду можно использовать с именем переменной и без значения, чтобы удалить соответствующее значение из локальной среды.

  • REG_DWORD значения реестра извлекаются и используются в шестнадцатеричном режиме.

  • Режим файла поддерживает только синтаксический анализ возвращаемых каретки и текстовых файлов канала строк (CRLF).

  • При выполнении этой команды в существующей переменной удаляются все ссылки на переменные и используются развернутые значения.

    Например, если переменная %PATH% имеет ссылку на %JAVADIR%, и %PATH% управляется с помощью setx, %JAVADIR% расширяется и ее значение присваивается непосредственно целевой переменной %PATH%. Это означает, что будущие обновления %JAVADIR% не будут отражаться в переменной %PATH%.

  • Имейте в виду, что существует ограничение в 1024 символа при назначении содержимого переменной с помощью setx.

    Это означает, что содержимое обрезается при переходе на 1024 символов и что обрезанный текст применяется к целевой переменной. Если этот обрезанный текст применяется к существующей переменной, это может привести к потере данных, ранее удерживаемых целевой переменной.

Examples

Чтобы установить переменную окружения MACHINE в локальном окружении в значение Brand1, введите:

setx MACHINE Brand1

Чтобы установить переменную окружения MACHINE в системном окружении в значение Brand1 Computer, введите:

setx MACHINE Brand1 Computer /m

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

setx MYPATH %PATH%

Чтобы установить переменную окружения MYPATH в локальном окружении, использовать путь поиска, определенный в переменной окружения PATH , после замены ~ на %, введите:

setx MYPATH ~PATH~

Чтобы установить переменную среды MACHINE в локальной среде в значение Brand1 на удаленном компьютере с именем computer1, введите:

setx /s computer1 /u maindom\hiropln /p p@ssW23 MACHINE Brand1

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

setx /s computer1 /u maindom\hiropln /p p@ssW23 MYPATH %PATH%

Чтобы установить переменную окружения TZONE в локальной среде в значение, найденное в разделе реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName , введите:

setx TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName

Чтобы установить переменную окружения TZONE в локальной среде удаленного компьютера с именем computer1 в значение, найденное в разделе реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName , введите:

setx /s computer1 /u maindom\hiropln /p p@ssW23 TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName

Чтобы установить переменную окружения BUILD в системном окружении в значение, найденное в разделе реестра HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber , введите:

setx BUILD /k HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber /m

Чтобы установить переменную окружения BUILD в системной среде удаленного компьютера с именем Computer1 в значение, найденное в разделе реестра HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber , введите:

setx /s computer1 /u maindom\hiropln /p p@ssW23  BUILD /k HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\CurrentBuildNumber /m

Чтобы отобразить содержимое файла с именем Ipconfig.out вместе с соответствующими координатами содержимого, введите:

setx /f ipconfig.out /x

Чтобы установить переменную окружения IPADDR в локальном окружении в значение, найденное по координате 5,11 в файле Ipconfig.out , введите:

setx IPADDR /f ipconfig.out /a 5,11

Чтобы установить переменную окружения OCTET1 в локальном окружении в значение, найденное по координате 5,3 в файле Ipconfig.out с разделителями #$*., введите:

setx OCTET1 /f ipconfig.out /a 5,3 /d #$*.

Чтобы установить переменную окружения IPGATEWAY в локальном окружении в значение, найденное по координате 0,7 относительно координаты Gateway в файле Ipconfig.out , введите:

setx IPGATEWAY /f ipconfig.out /r 0,7 Gateway

Чтобы отобразить содержимое файла Ipconfig.out вместе с соответствующими координатами содержимого на компьютере с именем computer1, введите:

setx /s computer1 /u maindom\hiropln /p p@ssW23 /f ipconfig.out /x