setx

在用户或系统环境中创建或修改环境变量,而无需编程或脚本。 Setx 命令还检索注册表项的值并将其写入文本文件。

注释

此命令提供直接和永久设置系统环境值的唯一命令行或编程方式。 系统环境变量可通过 控制面板 或通过注册表编辑器手动配置。 命令,该命令是命令解释器(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> 指定要使用的文件。
/一个 <X>,<Y> 将绝对坐标和偏移指定为搜索参数。
/r <X>,<Y> <String> 指定 字符串 的相对坐标和偏移量作为搜索参数。
/m 指定在系统环境中设置变量。 默认设置是本地环境。
/x 显示文件坐标,忽略 /a /a/r/d 命令行选项。
/d <delimiters> 指定除四个内置分隔符(空格、TAB、ENTER 和 LINEFEED)之外,还需使用 \ 等分隔符。 有效的分隔符包括任何 ASCII 字符。 分隔符的最大数目为 15,包括内置分隔符。
/? 在命令提示符下显示帮助。

注解

  • 此命令类似于 UNIX 实用工具 SETENV。

  • 可以使用此命令从三个源之一(模式):命令行模式、注册表模式或文件模式之一设置用户和系统环境变量的值。

  • 此命令将变量写入注册表中的主环境。 setx 变量设置的变量仅在将来的命令窗口中可用,而不能在当前命令窗口中使用。

  • HKEY_CURRENT_USERHKEY_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 setx将内容分配给变量时,限制为 1024 个字符。

    这意味着,如果超过 1024 个字符,则裁剪的内容是应用于目标变量的内容。 如果此裁剪的文本应用于现有变量,则可能会导致目标变量以前保留的数据丢失。

例子

若要将本地环境中的 MACHINE 环境变量设置为 brand1 的值,请键入:

setx MACHINE Brand1

若要将系统环境中的 MACHINE 环境变量设置为 brand1 计算机 的值,请键入:

setx MACHINE Brand1 Computer /m

若要在本地环境中设置 MYPATH 环境变量,请使用 PATH 环境变量中定义的搜索路径,请键入:

setx MYPATH %PATH%

若要设置本地环境中的 MYPATH 环境变量,请在将 替换为 ~后,使用 % 环境变量中定义的搜索路径,请键入:

setx MYPATH ~PATH~

若要将本地环境中的 MACHINE 环境变量设置为在 名为 computer1的远程计算机上 Brand1,请键入:

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

若要在名为 computer 1 的远程计算机的本地环境中将 TZONE 环境变量设置为 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

若要在名为 Computer1 的远程计算机的系统环境中将 BUILD 环境变量设置为在 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 环境变量设置为 Ipconfig.out 文件中坐标 5,11 处找到的值,请键入:

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

若要将本地环境中的 OCTET1 环境变量设置为 Ipconfig.out 文件中 #$* 5,3 坐标处找到的值。,类型:

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

若要将本地环境中的 IPGATEWAY 环境变量设置为在 Ipconfig.out 文件中 网关 坐标 0,7 处找到的值,请键入:

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

若要在名为 computer1的计算机上显示 Ipconfig.out 文件的内容以及内容的相应坐标,请键入:

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