如果修改或添加环境变量,则必须重新启动命令提示符。是否有一个命令,我可以执行,将这样做而不重新启动CMD?
当前回答
这适用于windows 7: SET PATH=%PATH%
通过输入echo %PATH%测试,它工作正常。也设置如果你打开一个新的cmd,不需要那些讨厌的重新启动:)
其他回答
这适用于windows 7: SET PATH=%PATH%
通过输入echo %PATH%测试,它工作正常。也设置如果你打开一个新的cmd,不需要那些讨厌的重新启动:)
调用这个函数对我来说很有用:
VOID Win32ForceSettingsChange()
{
DWORD dwReturnValue;
::SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM) "Environment", SMTO_ABORTIFHUNG, 5000, &dwReturnValue);
}
在最终找到一个更简单的解决方案之前,我偶然发现了这个答案。
只需在任务管理器中重新启动explorer.exe。
我没有测试,但您可能还需要重新打开命令提示符。
这里归功于Timo Huovinen:虽然成功安装了节点但无法识别(如果这对你有帮助,请给这个人的评论加分)。
如果它只涉及一个(或几个)特定的变量,你想要改变,我认为最简单的方法是一个变通方法:在你的环境和当前的控制台会话中设置
Set将把变量放在当前会话中 SetX将把变量放在环境中,但不是在当前会话中
我使用这个简单的批处理脚本将Maven从Java7更改为Java8(两者都是env。批处理文件夹在我的PATH变量中,所以我总是可以调用'j8',在我的控制台和环境中,我的JAVA_HOME变量被改变:
j8.bat:
@echo off
set JAVA_HOME=%JAVA_HOME_8%
setx JAVA_HOME "%JAVA_HOME_8%"
到目前为止,我发现这是最好的和最简单的工作。 你可能希望这是在一个命令中,但它只是没有在Windows…
我在批处理脚本中使用以下代码:
if not defined MY_ENV_VAR (
setx MY_ENV_VAR "VALUE" > nul
set MY_ENV_VAR=VALUE
)
echo %MY_ENV_VAR%
通过在SETX之后使用SET,可以直接使用“本地”变量,而无需重新启动命令窗口。在下次运行时,将使用环境变量。
推荐文章
- 我如何找到哪个程序正在使用端口80在Windows?
- 在Windows中有像GREP这样的模式匹配实用程序吗?
- 如何在Windows命令提示符下运行.sh ?
- Mac OS X中的环境变量
- 如何从命令行在windows中找到mysql数据目录
- 在没有事件源注册的情况下写入Windows应用程序事件日志
- 如何在Makefile中设置子进程的环境变量
- Windows FINDSTR命令的未记录的特性和限制是什么?
- 无法在Windows上从/usr/local/ssl/openssl.cnf加载配置信息
- GIT克隆在windows中跨本地文件系统回购
- 如何在POM.xml中引用环境变量?
- 如何运行一个PowerShell脚本而不显示窗口?
- PowerShell:仅为单个命令设置环境变量
- 为什么这个Windows批处理文件只执行第一行,而在命令shell中执行所有三行?
- 环境变量存储在Windows注册表的哪里?