不是Windows VBS编写器(但是Windows shell的用户)我使用多个不同版本的第三方代码,这些代码要求我设置windows shell环境变量,特别是这些是与Java相关的
查看以下question我开始考虑使用单个命令快速更改shell环境变量需要做些什么。例如:
在模式A中我有
ANT_HOME=c:\foo\bar\ant-1.5.1
JAVA_HOME=c:\foo\java\1.4
PATH=c:\foo\java\1.4\bin;c:\foo\bar\ant-1.5.1\bin
在模式B中开发其他东西,我希望快速切换到以下内容(同时剔除上述过程中的PATH设置)
ANT_HOME=c:\foo\bar\ant-1.6.1
JAVA_HOME=c:\foo\java\1.6
PATH=c:\foo\java\1.6\bin;c:\foo\bar\ant-1.6.1\bin
要在引用的问题中扩充脚本,我猜测使用Split命令进行一些路径处理等等是必要的。有没有人已经做过这样的事情,他们愿意分享?
我显然不能只杀死整个PATH,因为PATH中有许多其他项目我想保留使用它们。
答案 0 :(得分:1)
在路径中使用ANT_HOME和JAVA_HOME变量:
PATH=%JAVA_HOME%\bin;%ANT_HOME%\bin
在路径中有一个批处理文件,用于在2个上下文之间进行交换
modea.bat:
set ANT_HOME=c:\foo\bar\ant-1.5.1
set JAVA_HOME=c:\foo\java\1.4
modeb.bat:
set ANT_HOME=c:\foo\bar\ant-1.6.1
set JAVA_HOME=c:\foo\java\1.6
答案 1 :(得分:1)
根据thaggie的回答,您可以将ANT_HOME
和JAVA_HOME
路径作为参数传递给您的脚本:
C:> MyScript c:\foo\java\1.4 c:\foo\bar\ant-1.5.1
这样您就不需要为每个“模式”管理.bat
脚本。
然后在您的脚本中使用路径中的参数:
:: Not needed, but makes it clearer which argument is the Ant path
:: and which is the Java path.
set JAVA_HOME=%1
set ANT_HOME=%2
:: If you want to preserve the current path and just append the Ant and
:: Java paths:
set PATH=%path%;%JAVA_HOME%;%ANT_HOME%
:: If you want the path to just be the Ant and Java paths:
set PATH=%JAVA_HOME%;%ANT_HOME%