限制Windows环境变量嵌套?

前端之家收集整理的这篇文章主要介绍了限制Windows环境变量嵌套?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
那么,在 Windows环境变量中嵌套的环境有多大限制?我做了很多开发工作,我试图设置我的开发环境vars,并且很多它们彼此嵌套,即.
GLEW=%THIRD_PARTY_ROOT%\GLEW
GLEW_1_5_5=%GLEW%\glew-1.5.5
GLEW_BIN_PATH=%GLEW_ROOT%\bin
GLEW_INCLUDE_PATH=%GLEW_ROOT%\include
GLEW_LIB_PATH=%GLEW_ROOT%\lib
GLEW_ROOT=%GLEW_1_5_5%

OSG=%THIRD_PARTY_ROOT%\OpenSceneGraph
OSG_2_8_3=%OSG%\OpenSceneGraph-2.8.3
OSG_BIN_PATH=%OSG_ROOT%\bin
OSG_INCLUDE_PATH=%OSG_ROOT%\include
OSG_LIB_PATH=%OSG_ROOT%\lib
OSG_ROOT=%OSG_2_8_3%

THIRD_PARTY_ROOT=C:\dev\third-party

但是我有一个时间让他们真正地扩张.有一段时间,当我看着set的输出,我只是看到他们正在被扩展的顺序,所以依赖于foo_ROOT的任何人都没有被正确扩展.我尝试启用延迟扩展,这没有帮助,但重新启动似乎…所以可能延迟扩展需要重新启动..

无论哪种方式,我的PATH变量中都有GLEW_BIN_PATH和OSG_BIN_PATH,它们拒绝展开.这真的很令人沮丧,因为dll是在那里居住,当然我可以得到evvvvery其他东西扩大…任何想法?

编辑:我将它们放在PATH变量中:

[everything else....];%GLEW_BIN_PATH%;%OSG_BIN_PATH%

所以我没有明显的原因让他们不再扩大.

看起来像变量定义上有一个词典依赖关系.

Windows以词典顺序扩展并填充环境变量(:-O)

您只能使用变量,“字典”的变量低于您的变量.

例:
以下定义:

VAR_01=1
VAR_02=%VAR_01%-2
VAR_03=%VAR_02%-3

产生

VAR_01 is 1
VAR_02 is 1-2
VAR_03 is 1-2-3

VAR_01=1
VAR_02=%VAR_03%-2
VAR_03=%VAR_01%-3

产生

VAR_01 is 1
VAR_02 is -2
VAR_03 is 1-3

扩充VAR_02时,VAR_03未定义.

猜你在找的Windows相关文章