我通过控制面板设置用户环境变量FOO = bar。
然后我打开2厘米的窗户。第一个来自开始按钮,另一个来自我工作目录的上下文(shift +右键单击)菜单,并键入
echo %FOO%
。
第一次打印bar
。其他人打印%FOO%
为什么输出不同&有没有办法从每个cmd窗口访问用户环境变量?
答案 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
然后一个新的上下文菜单命令提示符 - 这里应该可以工作。