setx

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

Примечание.

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

Синтаксис

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>]

Параметры

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

Замечания

  • Эта команда аналогична служебной программе 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%.

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

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

Примеры

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

setx MACHINE Brand1

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

setx MACHINE Brand1 Computer /m

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

setx MYPATH %PATH%

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

setx MYPATH ~PATH~

Чтобы задать переменную среды MACHINE в локальной среде бренд1 на удаленном компьютере с именем 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 в локальной среде значением, найденным в координате 511 в файле 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 относительно координат шлюза в файле 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