1.首先我想到的是set命令,试验之后发现只对当前窗口有效。
2.后来上网查了下,发现Win7/Win8(XP需要下载)有个setx工具,但是这个工具有个缺陷,就是超过1024个字符会自动截断,花了一点时间解决这个问题,最终无果。
3.想到直接修改注册表,有个reg命令可以支持我们这样做,但是还是遇到问题了:
语法:reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f]
其中DataType有个REG_EXPAND_SZ选项,发现时好时不好(一开始在Win7/8都设置成功),比如我reg命令设置好JAVA_HOME,继续设置PATH为“%PATH%;%JAVA_HOME%\bin”时,%JAVA_HOME这段理论上为替代为我们先前设置好的,因为我们设置了REG_EXPAND_SZ选项,但是情况是:PATH中的%JAVA_HOME%直接为空(Win7下),或者没有替换直接为%JAVA_HOME%(Win8下),但是两种情况%PATH%却替换了,这很奇怪。
所以希望了解这方面的可以跟我分析下或者提供另一种方案的思路,谢谢。