在 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
你的其他代码
您也可以在命令行中调用该文件