命令行从OS级configuration中删除环境variables

Windows有setx命令

 Description: Creates or modifies environment variables in the user or system environment. 

所以你可以像这样设置一个variables

 setx FOOBAR 1 

你可以像这样清除这个值

 setx FOOBAR "" 

但是,该variables不会被删除,它保留在registry

foob​​ar的

那么你怎样才能真正移除variables?

5 Solutions collect form web for “命令行从OS级configuration中删除环境variables”

从当前环境中删除variables( 不是永久的):

 set FOOBAR= 

要永久地从用户环境中删除variables(这是setx放置它的默认位置):

 REG delete HKCU\Environment /F /V FOOBAR 

如果variables在系统环境中设置(例如,如果您最初设置为setx /M ),以pipe理员身份运行:

 REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V FOOBAR 

要从当前命令会话中删除variables而不永久删除它,请使用常规的内置set命令 – 只需在等号后面不加任何内容:

set FOOBAR=

要确认,运行set没有参数,并检查当前的环境。 variables应该从列表中完全丢失。

注意 :这只会从当前环境中删除variables – 它不会将更改保留在registry中。 当一个新的命令过程开始时,variables将回来。

同意CupawnTae。

SET对主环境的更改没有用处。

仅供参考:系统variables位于HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment (比用户variables长很多)。

因此,对于名为FOOBAR的系统variables的完整命令是: REG delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /F /V FOOBAR (注意处理空间所需的引号)

太糟糕了, setx命令不支持删除语法。 🙁

PS:使用负责任的 – 如果你杀死你的pathvariables,不要责怪我!

上述命令不起作用,但是这样做:

 reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v FOOBAR /f 

快捷HKLM可用于HKEY_LOCAL_MACHINE

setx FOOBAR“”只是使FOOBAR的值为空string。 (虽然,它显示与设置命令与“”所以也许双引号是string。

我用:设置FOOBAR =

然后FOOBAR不再列在命令集中。 (不需要注销)

Win7的32位,使用命令提示符,非pipe理员是我使用的。 (不是cmd或Windows-r,可能不同。)

顺便说一句,我没有看到我创build后,在registry中的任何地方创build的variables。 我使用的不是pipe理员registry。

  • 如何将一个ArrayList的内容复制到另一个?
  • PHP中的HTTP_HOST和SERVER_NAME有什么区别?
  • Bash脚本存储命令输出到variables中
  • 设置“EDITOR”或“BUNDLER_EDITOR”环境variables
  • 有没有更好的写作方式v =(v == 0?1:0);
  • 如何更改Eclipse / ANT的JAVA.HOME
  • 如何使用跨页面存储和使用会话variables?
  • PHP中的dynamicvariables名称
  • 如何base64编码图像在Linux bash / shell
  • 从PHP中的variables实例化类?
  • 在Bashvariables赋值中找不到命令错误