使用 setx 编辑系统变量

使用 setx 编辑系统变量

我似乎找不到 setx 的正确参数来修改现有的系统环境变量。基本上,我有一个变量,我想将“.old”附加到该变量。

答案1

如何使用附加到现有的系统环境变量setx

只需将额外的数据添加到变量的末尾。

例子

> set _variable=foo

> echo %_variable%
foo

> setx _variable %_variable%bar

SUCCESS: Specified value was saved.

> echo %_variable%
foo

请注意,似乎setx没有起作用。这是因为您必须启动一个新cmdshell 才能看到更改:

setx将变量写入注册表中的主环境,编辑仅在打开新命令窗口时才会生效 - 它们不会影响当前 CMD 或 PowerShell 会话。

来源 -设置

打开一个新的cmdshell 来查看变化:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

> echo %_variable%
foobar

我们可以看到正确的值。


但我想更改变量名称。我该怎么做?

您不能直接更改变量名称,因为它作为键值存储在注册表中。

  • 解决方法是,创建一个具有新名称的新变量,然后删除旧变量。

  • setx没有删除选项,因此从注册表中删除该变量。

例子

setx _variable.old %_variable%
reg delete HKCU\Environment /F /V _variable

打开一个新的cmdshell 来查看更改。


进一步阅读

  • Windows CMD 命令行的 AZ 索引
  • 登记- 读取、设置或删除注册表项和值,并从 .REG 文件保存和恢复。
  • 设置- 永久设置环境变量,SETX 可用于为机器(HKLM)或当前登录用户(HKCU)设置环境变量。

相关内容