Windows中是否有命令从命令提示符刷新环境变量?

埃里克·舒诺弗(Eric Sc​​hoonover)

如果修改或添加环境变量,则必须重新启动命令提示符。我是否可以执行一个无需重启CMD即可执行的命令?

Itadok

您可以使用vbs脚本捕获系统环境变量,但是需要bat脚本来实际更改当前环境变量,因此这是一个组合解决方案。

创建一个resetvars.vbs包含此代码的文件,并将其保存在路径中:

Set oShell = WScript.CreateObject("WScript.Shell")
filename = oShell.ExpandEnvironmentStrings("%TEMP%\resetvars.bat")
Set objFileSystem = CreateObject("Scripting.fileSystemObject")
Set oFile = objFileSystem.CreateTextFile(filename, TRUE)

set oEnv=oShell.Environment("System")
for each sitem in oEnv 
    oFile.WriteLine("SET " & sitem)
next
path = oEnv("PATH")

set oEnv=oShell.Environment("User")
for each sitem in oEnv 
    oFile.WriteLine("SET " & sitem)
next

path = path & ";" & oEnv("PATH")
oFile.WriteLine("SET PATH=" & path)
oFile.Close

创建另一个包含以下代码的文件resetvars.bat,位置相同:

@echo off
%~dp0resetvars.vbs
call "%TEMP%\resetvars.bat"

当您要刷新环境变量时,只需运行 resetvars.bat


道歉

我提出此解决方案的两个主要问题是

一种。我找不到将vbs脚本中的环境变量导出回命令提示符的简单方法,并且

b。PATH环境变量是用户和系统PATH变量的串联。

我不确定用户和系统之间的变量冲突的一般规则是什么,因此我选择使用户覆盖系统,但专门处理的PATH变量除外。

我使用奇怪的vbs + bat + tempor bat机制来解决从vbs导出变量的问题。

注意:此脚本不会删除变量。

这可能可以改善。

添加

如果您需要将环境从一个cmd窗口导出到另一个cmd窗口,请使用以下脚本(我们称它为exportvars.vbs):

Set oShell = WScript.CreateObject("WScript.Shell")
filename = oShell.ExpandEnvironmentStrings("%TEMP%\resetvars.bat")
Set objFileSystem = CreateObject("Scripting.fileSystemObject")
Set oFile = objFileSystem.CreateTextFile(filename, TRUE)

set oEnv=oShell.Environment("Process")
for each sitem in oEnv 
    oFile.WriteLine("SET " & sitem)
next
oFile.Close

运行exportvars.vbs中要导出的窗口,然后切换到要出口的窗口,并键入:

"%TEMP%\resetvars.bat"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Windows从命令提示符创建具有修改电源状况的任务计划

从命令提示符Windows中打开Microsoft Visual Studio Code

系统变量路径在命令提示符中不同

如何从命令提示符下访问环境变量?

如何将“ RAD Studio命令提示符”与环境变量一起使用?

安装Java并设置环境变量后,如何在命令提示符下编译Java代码?

在Windows中从命令提示符打开“文件夹选项”窗口

为什么我的PATH环境变量与命令提示符不同?

使用命令提示符设置永久环境变量

在命令提示符下设置和获取Windows环境变量?

将环境变量设置为Windows命令提示符下的命令输出

从命令提示符运行exe时与在Windows中运行时的行为不同

如何从命令提示符打开命令提示符

在Windows中从命令提示符访问HTTPS URL

Windows命令提示符

是否有可以提升命令提示符的命令?

如何从命令提示符下在Windows中调用程序?

如何从命令提示符重新启动命令提示符

如何在Windows 7中从命令提示符复制数据?

Windows环境变量。如何更改必须在命令提示符下键入的名称才能运行路径目标

希望从命令提示符中读出

如果从不同位置打开命令提示符,为什么PATH环境变量值不同?

Windows中是否有命令从同一命令提示符刷新环境变量?

如何检查Windows是否已从命令提示符或Powershell激活?

PATH变量显示不同的值(命令提示符与环境变量对话框)

从命令提示符运行提升的 powershell 命令

在 shell 脚本中输入专有命令提示符

cmd windows 路径和环境变量在 Java 命令提示符中无法识别

如何在 Windows 命令提示符中设置环境变量,以便它们在 `docker run -e FOO -e ...` 中传递,就像 bash 导出一样