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> |
指定根据注册表项中的信息设置变量。 path使用以下语法:\\<HIVE>\<KEY>\...\<Value> 。 例如,你可以指定以下路径:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName |
/f <filename> |
指定要使用的文件。 |
/a <X>,<Y> |
指定绝对坐标和偏移量作为搜索参数。 |
/r <X>,<Y> <String> |
指定 String 的相对坐标和偏移量作为搜索参数。 |
/m | 指定在系统环境中设置变量。 默认设置为本地环境。 |
/x | 显示文件坐标,忽略 /a、/r 和 /d 命令行选项。 |
/d <delimiters> |
指定除四个内置分隔符(SPACE、TAB、ENTER 和 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~
若要在名为 computer1 的远程计算机上将本地环境中的 MACHINE 环境变量设置为 Brand1,请键入:
setx /s computer1 /u maindom\hiropln /p p@ssW23 MACHINE Brand1
若要在名为 computer1 的远程计算机上将本地环境中的 MYPATH 环境变量设置为使用 PATH 环境变量中定义的搜索路径,请键入:
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
若要在名为 computer1 的远程计算机上将本地环境中的 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