我似乎找不到 setx 的正确参数来修改现有的系统环境变量。基本上,我有一个变量,我想将“.old”附加到该变量。
答案1
如何使用附加到现有的系统环境变量setx
只需将额外的数据添加到变量的末尾。
例子:
> set _variable=foo
> echo %_variable%
foo
> setx _variable %_variable%bar
SUCCESS: Specified value was saved.
> echo %_variable%
foo
请注意,似乎setx
没有起作用。这是因为您必须启动一个新cmd
shell 才能看到更改:
setx
将变量写入注册表中的主环境,编辑仅在打开新命令窗口时才会生效 - 它们不会影响当前 CMD 或 PowerShell 会话。
来源 -设置
打开一个新的cmd
shell 来查看变化:
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
打开一个新的cmd
shell 来查看更改。
进一步阅读
- Windows CMD 命令行的 AZ 索引
- 登记- 读取、设置或删除注册表项和值,并从 .REG 文件保存和恢复。
- 设置- 永久设置环境变量,SETX 可用于为机器(HKLM)或当前登录用户(HKCU)设置环境变量。