我想查询Path环境变量而不评估它包含的其他变量。
例如
variable1 = c:\abc
variable2 = c:\def
variable3 = c:\ghi
JAVA_HOME = c:\java
Path = c:\jkl;%variable1%;%variable2%;%variable3%;%JAVA_HOME%
我想查询路径并获取
C:\ JKL;%变量1%;%变量2%;%variable3%;%JAVA_HOME%
不是
C:\ JKL; C:\ ABC; C:\ DEF; C:\ GHI; C:\ java的
原因是什么?
在我的groovy脚本(执行shell命令)中,我想检查是否已在Path中设置%variable1%(或它的值)。如果还没有,我想添加它。我应该做对吗?
setx path "%path%;%variable1%" /m
其实没有,因为这会放入Path C:\ JKL; C:\ DEF; C:\ GHI; C:\的java;%变量1%
JAVA_HOME的未来更改将不再反映在Path中。 Path中与程序无关的任何其他引用变量都将被更改。这可能不是一个问题,但如果他们决定改变某些东西,期望路径反映他们的变化,这可能会影响其他人运行的其他程序。
我正试图在Windows中解决这个问题,但在某些时候也需要在linux中做类似的事情。 我目前正在使用Win 7,但这可以运行各种操作系统。
答案 0 :(得分:1)
我不认为这是可能的。设置变量后,将对其进行扩展。您可能不得不在Windows上查看注册表以获取未扩展的值,并且因为您不知道它在何处设置而在* nix上会丢失。实际上你也不知道在Windows中,有人可以打开一个shell,将变量设置为其他路径,然后启动你的程序,那么注册表值就会过时。