Windows的环境变量的递归问题

今天调整PATH路径,无意中发现Windows环境变量的递推法则有点奇怪。

系统变量是完全支持递归的。当然啦,要是弄一个死循环出来,我也不知道会发生什么。

但是用户变量的递归似乎有一点不同。

环境变量是按其名字的字典顺序定义的。若某一用户变量其中包括其它已定义、但顺序靠后的环境变量时,似乎无法正确的递归展开。而系统变量完全不存在这个问题。例如

COMPILERS	d:\compilers
JAVA_HOME	%COMPILERS%\java\jdk1.6.0_10
PATH		%JAVA_HOME%\bin;%MINGW%\bin
MINGW		%COMPILERS%\mingw

则其中JAVA_HOME, MINGW都能顺利展开,但PATH中的%MINGW%却无法展开。把上述定义改为系统变量,就能全部展开。

可能是个bug,求证实或证伪。

你可能会感兴趣

Leave a Reply