相关疑难解决方法(0)

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

如果我修改或添加环境变量,我必须重新启动命令提示符.是否有一个我可以执行的命令可以在不重新启动CMD的情况下执行此操作?

windows cmd environment-variables

446
推荐指数
17
解决办法
50万
查看次数

为什么其他文件夹路径也使用 SetX 添加到系统 PATH 而不仅仅是指定的文件夹路径?

我有一个批处理文件,我使用system("name.bat"). 在该批处理文件中,我试图读取注册表项的值。从 C++ 调用批处理文件会导致set KEY_NAME=HKEY_LOCAL_MACHINE\stuff失败。

但是,当我直接运行批处理文件(双击它)时,它运行良好。不知道我做错了什么。

批处理文件:

set KEY_NAME=HKEY_LOCAL_MACHINE\SOFTWARE\Ansoft\Designer\2014.0\Desktop
set VALUE_NAME=InstallationDirectory
REG QUERY %KEY_NAME% /v %VALUE_NAME%
Run Code Online (Sandbox Code Playgroud)

C++文件:

int main(void)
{
    system("CALL C:\\HFSS\\setup_vars.bat");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

更新1:

我发现密钥实际上在 64 位注册表中,并且我正在将 C++ 解决方案构建为 32 位。一旦我解决了这个问题,它就会发现注册表项很好。

现在我在将该路径添加到我的PATH变量时遇到了问题。它不是创建系统变量,而是创建用户变量PATH并将其添加到那里。

从命令行运行有效。

代码:

set KEY_NAME=HKLM\SOFTWARE\Ansoft\Designer\2014.0\Desktop\
set VALUE_NAME=InstallationDirectory

FOR /F "usebackq skip=1 tokens=1,2*" %%A IN (`REG QUERY %KEY_NAME% /v %VALUE_NAME%`) DO (
   set ValueName=%%A
   set ValueType=%%B
   set ValueValue=%%C
)

if defined ValueName (
   @echo Value Value = %ValueValue%
) else …
Run Code Online (Sandbox Code Playgroud)

registry batch-file

2
推荐指数
1
解决办法
1519
查看次数