为什么用户环境变量有时不会扩展?

时间:2015-06-16 14:36:57

标签: windows-7 cmd environment-variables

我通过控制面板设置用户环境变量FOO = bar。

enter image description here

然后我打开2厘米的窗户。第一个来自开始按钮,另一个来自我工作目录的上下文(shift +右键单击)菜单,并键入echo %FOO%

第一次打印bar。其他人打印%FOO%

enter image description here

为什么输出不同&有没有办法从每个cmd窗口访问用户环境变量?

3 个答案:

答案 0 :(得分:1)

你是如何设置变量的? 我相信您可能将其设置为“CMD变量”,该范围仅对当前会话有效。

对于持久变量,您应该使用SETX命令:

index.php

有关SET和SETX命令之间的详细信息,请访问以下链接:

答案 1 :(得分:0)

用户环境变量继承。每个进程都从其父进程创建它们。更改它们将影响当前流程及其未来子项。

答案 2 :(得分:0)

我正在处理同样的问题。

c:\SetX test NOT
c:\echo test=%test% fail.
test= fail.

c:\start %comspec%
Microsoft Wind..er..DOS [Version 6.1.7601]
c:\echo test=%test% fail.
test= fail.

Start -> run -> cmd
echo test=%test% fail.
test=NOT fail.

win-r宏可行,但更喜欢安静/非侵入式解决方案。

我尝试使用schtasks / run但它保留了旧的环境。

这可能是使用新环境启动的命令。

Nirsoft或sysinternals可能有一些东西......

还在看。

*** MSalters正确回答了OP,继承问题。

命令提示符 - 这里继承了资源管理器的旧环境。

taskkill /im explorer.exe /f
start explorer

然后一个新的上下文菜单命令提示符 - 这里应该可以工作。