如何在 Windows 的命令提示符中重新获取环境变量?

如何在 Windows 的命令提示符中重新获取环境变量?

在 bash shell 中,您可以编辑环境变量,source ./.bashrc在已打开的 shell 中运行并刷新环境变量的值。Windows 是否有类似的命令,您可以从命令提示符运行该命令来执行此操作?

(例如,我可能会在计算机属性中更改系统 %PATH% 变量,然后希望我现有的 cmd.exe 窗口从那里刷新环境变量。

答案1

SET variable=string

变量是要创建的新变量(或现有变量)

字符串是您想要分配给变量的内容

存储文本字符串的示例:

C:> SET _dept=销售和营销

来源:http://ss64.com/nt/set.html

注意:所做的更改SET仅保留在 CMD 会话中。

答案2

在 DOS 窗口中,您可以将所有环境变量发送到批处理文件中,然后运行该文件以在该会话期间更改变量:

C:\temp> 设置 >newenv.bat

单击返回 Windows,在您最喜欢的编辑器中打开 newenv.bat 文件,删除除要重置的变量之外的所有变量。对于剩余的变量,在行首添加单词“set”,并使用新值重写“=”后面的所有内容。

现在返回 DOS 窗口并运行批处理文件:

C:\temp> newenv

...您将看到每行将变量重置为新值。如果您不想看到重置行,请将“echo off”放在 .bat 文件的顶部。

这应该适用于所有内容,包括 PATH。您可以保留此文件,以便在以后需要恢复该环境上下文时方便使用。

您还可以使用 set 命令中的 %VARIABLE% 将值添加到当前值的开头或结尾。例如,要将另一个搜索目录添加到路径,您可以说:set PATH=%PATH%;c:\bin,它会将其添加到末尾,保持当前值不变。

您还可以使用 set 命令对环境变量执行许多其他操作,包括 cmd 提供的标准 %VAR% 变量等... 尝试在 DOS 提示符下输入“help set”以获取有关这些变量的大量信息。但基本思想是将更改存储到 bat 文件中并运行它,以免您一遍又一遍地重新输入更改...

答案3

我不知道如何在系统 GUI 中更改环境变量,然后在现有命令窗口中“学习”它。

但是,我不再使用 GUI,因为我可以在命令行中设置全局和本地环境变量。根本不需要 GUI。如果你有办法始终避免使用 GUI,也许你的问题会变得更容易处理?

缺点是,有一个命令用于设置全局环境变量,另一个命令用于本地命令窗口。我不知道如何在一个命令中同时获取它们。相反,我有一个 .BAT 文件,它将我的变量名称和值作为参数,并同时设置全局和本地环境变量。下一个命令窗口或 GUI 应用程序将看到新值。我不认为运行 GUI 应用程序或其他但是打开命令窗口将会。

C:>SET_ENVVARS.BAT MYVAR MYVAL
SET %1=%2
CALL SETX %1 %2 /M

您有命令行的所有限制,例如转义字符和引号,但大多数情况下它运行得很好。

我的 .BAT 文件有一些花哨的功能,但其核心就是这样。

我很少需要使用 GUI。

我有时也会用以下方法“转储”我的环境变量:

C:\>SET >MYVARS.TXT

稍加锻造就能让你从中获得资源。

这不是一个快速解决方案,但我在 .BAT 文件基础结构上投入了大量时间,并且发现从长远来看,通过重新构建问题以匹配 Windows .BAT 文件的最佳工作方式,我可以节省更多时间。除此之外,有时我会求助于 C,例如列出所有 PATH 元素,但每个元素都在单独的一行上。

答案4

创建一个批处理程序来设置您想要设置的所有变量,
您可以从另一个批处理文件中使用调用来获取变量

批量
调用myvars.bat

你的其他代码

您也可以在命令行中调用该文件

相关内容