Windows 7 PATH 未扩展

Windows 7 PATH 未扩展

我正在使用以下内容为 Windows 7 创建和编辑环境变量。

Control Panel\All Control Panel Items\System -> Advanced system settings -> Environment Variables

System variables我有以下相关变量:


PROG32=C:\Program Files (x86)
REALDWG_SDK_DIR=%PROG32%\Autodesk\RealDWG 2011
Path=%REALDWG_SDK_DIR%;%PROG32%\Haskell\bin

然而,发生了以下情况:


C:\>echo %PROG32%
C:\Program Files (x86)

C:\>echo %Path%
%REALDWG_SDK_DIR%;C:\Program Files (x86)\Haskell\bin

变量链可以扩展吗?

如果我将其重命名Path为其他名称,有时会遇到问题,有时则不会。

答案1

编辑:经过进一步的试验,实际问题似乎与变量名有关——可能是解析器中扩展嵌套变量的某种错误。看来你添加的嵌套变量需要如果它们是按字母顺序排列的,则为顶级变量。

例如,将 REALDWG_SDK_DIR 更改为 OEALDWG_SDK_DIR 可以工作,BEALDWG_SDK_DIR 也可以工作,但 PEALDWG_SDK_DIR 不行,ZEALDWG_SDK_DIR 也不行。或者,将 PATH 重命名为 SATH 可以工作,但 RATH 不行。

因此,解决问题的方法是使用以 P 之前的字母开头的内容,或者手动输入路径的第一部分。


初始(错误)答案:

你所做的应该有效。检查以确保你在整个过程中没有在某个变量名称中输入错误——这是我能想到的唯一导致它只打印名称而不展开的原因。此外,应用更改后,你需要打开一个新的命令提示符。

答案2

我想知道这是否与微软知识库中的这个缺陷有关:

http://support.microsoft.com/kb/329308

我在某些 XP 系统上遇到了与环境变量相同的问题(不仅仅是 %APPDATA%,就像 KB 文章中提到的那样)。使用各种方法设置环境变量,包括 KB 文章中提到的两种方法,都无济于事……setx(Windows 资源工具包工具)也无济于事。

但是,同样的方法在其他系统上也有效。这非常令人沮丧 - 我发现的唯一解决方案似乎是使用显式路径而不是环境变量引用(这很糟糕,但有效)。

例如,

MYVAR=C:\something
PATH=C:\something\bin

而不是:

MYVAR=C:\something
PATH=%MYVAR%\bin

编辑:过去一段时间,我一直在使用 mklink (http://technet.microsoft.com/en-us/library/cc753194.aspx) 创建连接点(基本上是符号链接),而不是摆弄环境变量及其错误。例如,我没有使用 MYVAR 作为环境变量,而是直接创建c:\myvar- 它可以指向E:\some\really\long\and\hard\to\remember\let\alone\type\path或任何你想要的。mklink是一致的,可以通过命令行创建,并且它们在重新启动之间保持不变。例如:

mklink /j c:\myvar c:\something
mklink /j c:\myvar E:\some\really\long\and\hard\to\remember\let\alone\type\path

相关内容