0

我遇到了一个关于系统属性环境变量的奇怪问题。

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

我将变量 TEMP 的值更改为 C:\mytemp\ 并单击确定保存它。

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

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

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

PS。操作系统是Win7 x86

4

2 回答 2

1

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

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

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

于 2013-09-05T03:45:39.940 回答
1

环境变量在进程运行时设置并且不更新。

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

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

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

于 2013-09-05T03:50:42.687 回答