【问题标题】:Quick swap of windows shell environment variableswindows shell环境变量的快速交换
【发布时间】:2010-10-12 20:24:01
【问题描述】:

不是 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 中还有许多其他我想保留的项目被使用。

【问题讨论】:

    标签: windows batch-file environment-variables


    【解决方案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
    

    【讨论】:

    • 应该提到我已经按照这些思路做了一些事情。我在想更多 - 一个脚本来统治他们所有的事情。我通常不会费心去写,因为我有一个解决方案,但也许有人在我之前就花时间这样做了。
    【解决方案2】:

    根据 thaggie 的回答,您可以将 ANT_HOMEJAVA_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%
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多