【问题标题】:Does echo %PATH% expand to only the system or also the user variables?echo %PATH% 是否仅扩展到系统变量或用户变量?
【发布时间】:2014-02-11 16:46:20
【问题描述】:

在最佳答案的最高投票评论中 (How to persistently set a variable in Windows 7 from a batch file?) 提到 %PATH% 扩展到系统和用户变量。真的吗?在我的笔记本电脑中,如果我打开 cmd 并输入数字

    echo %PATH% 

我只看到系统变量。有人可以澄清这一点吗?

干杯 A.

【问题讨论】:

  • 你是什么意思:“在我的笔记本电脑中这不会发生”?你在做什么/你看到了什么?
  • 好吧,对不起,我现在解释得更好了

标签: windows environment-variables


【解决方案1】:

默认情况下,给新进程的环境会合并系统和用户变量。因此,如果您为系统和用户定义了 PATH 变量,那么这两个值将被合并。

您的实验似乎与我上面的陈述相矛盾。但是,当我重复您的实验时,我可以看到来自系统和用户设置的值合并。所以我只能得出结论,你的实验没有正确进行。

更新:也许这个comment from the MSDN topic on environment variables 可能是相关的:

发现在 Windows Server 2003 上,一旦系统 PATH 超过 1920 个字符,用户 PATH 环境变量不再与其合并以设置进程 PATH 环境变量,即使完整的系统 PATH(即使更大)也会包含在进程 PATH 变量中。

【讨论】:

  • 是的,有字符限制。这解决了这个问题。谢谢。
  • 我想补充一点,即使某些目录是使用其他变量存储的(如 %comp%\redist\intel64\mkl ),重要的是扩展路径的长度!如果后者大于 1920,则不合并 PATHS,即使非扩展更短!!!
猜你喜欢
  • 2012-10-22
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-25
  • 2018-07-08
  • 2014-02-11
相关资源
最近更新 更多