You may want to make these two permanent with setx but obviously no need to
C:\>set uvar=HKCU\Environment
C:\>
C:\>set mvar=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
C:\>
一些术语
在一个键(就像一个文件夹)中,您有一个包含一些数据的变量,例如 a=5
http://msdn.microsoft.com/en-us/library/3dwk5axy.aspx http://msdn.microsoft.com/en-us/library/3dwk5axy.aspx谈论名称(a)具有值(5)。
注册表术语在 msdn 上看起来有点不同,但 reg.exe 和 wikipedia 似乎是一致的。
维基百科http://en.wikipedia.org/wiki/Windows_Registry http://en.wikipedia.org/wiki/Windows_Registry这么说
“注册表值是存储在键中的名称/数据对”
谈论名称/数据对。 name(a) data(5) 和该对一起构成一个值。
REG 似乎使用 /v ,它可能指的是变量名称及其数据(如维基百科中所示),它确实显示了变量名称及其数据。 REG 有一个 /d 我想它只是用于数据。
使用 setx 的示例
C:\>reg query %uvar%
HKEY_CURRENT_USER\Environment
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
...
C:\>setx aaa 3
C:\>reg query %uvar%
HKEY_CURRENT_USER\Environment
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
...
aaa REG_SZ 3
如果您尝试使用 setx 来删除它,您能得到的最接近的结果就是清除它,如这篇 MS 知识库文章这篇 MS 知识库文章 195050 http://support.microsoft.com/kb/195050说这让你仍然在注册表中。
setx 未从注册表中删除变量
C:\>setx aaa ""
SUCCESS: Specified value was saved.
C:\>reg query %uvar%
HKEY_CURRENT_USER\Environment
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
...
aaa REG_SZ
C:\>
但值得注意的是,就 cmd 提示符而言,该变量已消失。 echo %aaa% 将显示 %aaa% 因此变量消失了。现在注册表中只有一些不必要的垃圾。
用户提出了一个有趣的观点,现在当您尝试设置系统范围的变量时,它不起作用。当它被用户变量中的内容覆盖时,在这种情况下,它将始终显示为未定义。
C:\>reg delete %uvar% /v aaa
Delete the registry value aaa (Yes/No)? y
The operation completed successfully.
C:\>
请注意,aaa 现在消失了。以下。
C:\>reg query %uvar%
HKEY_CURRENT_USER\Environment
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
...
C:\>
如果您想针对系统/计算机环境变量而不是用户环境变量执行此操作。
- 下面的行必须来自管理特权 cmd 提示符
-注意键是 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
-%mvar%(与%uvar%不同)需要用引号引起来,因为密钥中有一个空格。如果您错过了引号,这没什么大不了的,您只是会收到一个错误,这可能会提醒您使用引号。
- 当然,如果您想使用 setx 在注册表的该部分设置环境变量,请使用例如setx aaa 5 -m 即后面的 -m 。
C:\>set mvar=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
C:\>reg delete "%mvar%" /v aaa
Delete the registry value aaa (Yes/No)? y
The operation completed successfully.
C:\>
进一步说明
您也许可以仅使用 REG ADD 或 REG DELETE..(代替 setx)创建环境变量,但无论哪种方式,在设置变量时您可能也想使用 set,以便它也为当前会话设置不仅仅是下一张。并重新设置链接https://superuser.com/questions/647505/set-enviroment-variable-setx https://superuser.com/questions/647505/set-enviroment-variable-setx