如何使用 Windows CMD 环境变量

已发表: 2022-06-28

Windows 10 和 11 徽标

使用命令提示符 (CMD) 添加或修改环境变量很容易,但删除环境变量要复杂得多。 这里有几种不同的方法可以做到这一点。

目录

如何添加或修改环境变量
临时设置环境变量
永久设置环境变量
如何删除环境变量
临时删除环境变量
永久删除环境变量

如何添加或修改环境变量

首先,您需要以管理员身份启动命令提示符或 CMD。 单击开始,在搜索框中键入“cmd”,然后单击“以管理员身份运行”。

注意:可以在常规命令提示符窗口中设置或修改任何用户环境变量,但更改系统范围的环境变量需要提升的命令提示符。

设置环境变量有两种不同的方法。

临时设置环境变量

第一个使用 set 命令。 Set 仅在定义它的进程中定义环境变量——换句话说,该变量仅在您打开的窗口或包含它的脚本中有效。

下面是一个示例:假设您要创建一个名为 LifeAnswerVar 的环境变量并将值设置为 42。命令将set LifeAnswerVar=42

当该窗口打开时,LifeAnswerVar 的值为 42。

设置 lifevar=42 的命令提示符

当它关闭时,环境变量及其值将被删除。

未定义 LifeAnswerVar 的新 CMD 窗口。

如果您想临时修改现有的 Windows 系统变量,完全相同的方法也适用。 您需要做的就是用您要更改的系统变量代替 LifeAnswerVar,并用您要分配的值代替 42。

例如,如果您想将 TMP 文件夹移动到 C:\Example Folder,您需要输入命令set TMP=C:\"Example Folder"

TMP 文件夹移至示例文件夹

第一行set TMP显示了 TMP 的当前值。 第二行为 TMP 分配了一个新值。 第三行确认它已经改变。

永久设置环境变量

第二种方式使用 setx。 Setx 永久定义 Windows 环境变量。 它们在窗口之间和重新启动之间持续存在,并被写入 Windows 注册表。 这些环境变量可以为特定用户定义,也可以为系统范围的使用定义。

命令setx ExVar1 Tomato /m将创建一个名为 ExVar1 的新环境变量并将值“Tomato”分配给它。 /m 参数指定新变量应该是系统范围的,而不仅仅是当前用户。

命令提示符中定义的 ExVar1

使用完全相同的命令修改现有环境变量,将 ExVar1 替换为您要更改的变量的名称。

注意:如果您使用 setx 修改变量并设置查看变量的值,set 将不会显示正确的值,直到打开一个新的命令提示符窗口。

如果要添加或修改用户环境变量,只需从命令中省略 /m 参数。

如何删除环境变量

删除环境变量比添加或修改环境变量要困难一些。

注意:与添加变量一样,可以在常规命令提示符窗口中删除任何用户环境变量,但删除系统范围的环境变量需要提升的命令提示符。

临时删除环境变量

如果要临时删除当前进程的环境变量,例如脚本、PowerShell 窗口或命令提示符窗口,可以使用 set 命令。 您需要做的就是不为变量赋值。

例如,如果您在系统范围的环境变量中有变量定义ExVar1=Tomato ,但想在某个特定进程中忽略它,该怎么办? 您可以在命令提示符中键入set ExVar1=或在脚本中包含该行。 在脚本执行或打开新的命令提示符窗口之前,该变量将设置为空。

ExVar1 暂时设为空白。

永久删除环境变量

永久删除环境变量有点复杂——你必须使用reg来完成。

警告: Reg 是注册表编辑器的命令行版本。 你应该谨慎行事——一个错字可能会导致你不小心删除了一些重要的东西。 备份您正在编辑的注册表部分也没有什么坏处。

各个用户的环境变量存储在HKEY_CURRENT_USER\Environment中。 系统范围的环境变量存储在其他地方,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment中。

让我们使用ExVar1=Tomato示例。 ExVar1 环境变量是在系统范围内定义的,这意味着它位于 HKEY_LOCAL_MACHINE 目录而不是 HKEY_CURRENT_USER 目录中。 具体来说,子键的路径是:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ExVar1

注意:此路径包含一个空格。 任何时候在命令行界面中输入的路径中有空格,都必须在路径两边加上引号,否则极有可能无法正确执行。

现在我们需要使用reg delete命令来删除它。 请记住,您需要在下面的命令中将变量名替换为 ExVar1。

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

那里有很多,所以让我们分解一下。

  • reg delete — 定义我们正在使用的应用程序 (reg) 和命令 (delete)
  • "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\" — 告诉 reg delete 在哪里查找密钥
  • /f - 告诉 reg delete 删除密钥而不提示确认
  • /v - 告诉 reg delete 它将被赋予一个特定的子键来删除
  • ExVar1 — 我们要删除的子项的名称

删除单个用户的环境变量与删除系统范围的变量完全相同,只是路径不同。 如果 ExVar1 是用户环境变量,删除它的命令是:

reg delete HKEY_CURRENT_USER\Environment /f /v ExVar1

如果删除环境变量的命令成功,您应该在命令提示符中看到“操作成功完成”。

Reg delete 用于从用户环境变量中删除 ExVar1

任何时候删除这样的环境变量,都需要重新启动 explorer.exe。 您可以手动重新启动 Explorer.exe,也可以只重新启动整个计算机。 两者都可以,并且更改应在重新启动后立即生效。