如何从系统属性获取Windows操作系统环境变量

时间:2013-09-05 03:33:50

标签: windows winapi

我遇到了一个关于System Property环境变量的奇怪问题。

如您所知,我们可以打开Computer->Property->Advanced System Settings->Advanced->System Environment Variables->User Variables for admin

我将Variable TEMP'值更改为C:\ mytemp \,然后单击OK保存它。

但是,在命令行中,当我回显%TEMP%时,它仍显示原始路径C:\Users\admin\AppData\Local\Temp

当我在资源管理器中输入%TEMP%时,它将转到C:\ mytemp

现在我想用API来获取路径,GetEnvironmentVariable()也将返回与命令行中的echo%TEMP%相同的路径。我怎样才能像探索者那样获得路径。 提前致谢。

PS。操作系统是Win7 x86

2 个答案:

答案 0 :(得分:0)

通过计算机更改环境路径 - >属性 - >高级系统设置 - >高级 - >系统环境变量 - >用户变量将立即生效。但请注意,正在运行的程序将无法获取最新的环境变量。

所以我认为你根本没有为echo重新打开一个新的cmd。

打开一个新cmd,再次回显,将显示新路径。

答案 1 :(得分:0)

当进程运行且未更新时,将设置环境变量。

要验证这一点,请打开命令提示符,然后键入“echo%TEMP%”。保持命令提示符处于打开状态并更改%TEMP%变量。无论如何,输入“echo%TEMP%”将打印旧值。

现在打开一个新的命令提示符和“echo%TEMP%”,新命令提示符将打印新值。

作为一种变通方法,您可以启动一个新线程来检查该特定时间的当前设置。

相关问题