我正在使用以下内容为 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