代码之家  ›  专栏  ›  技术社区  ›  rockeye

如何从Ant“exec”任务导出环境变量?

  •  2
  • rockeye  · 技术社区  · 16 年前

    我使用ANT在Win XP下构建MSVisualC++项目。

    要访问独立于计算机的“devenv.com”,我想使用vsvars32.bat脚本。 不幸的是,环境变量似乎只在“exec”范围内定义。

    例子:

    <exec executable='"${env.VS90COMNTOOLS}vsvars32.bat/>
    <echo message="${DevEnvDir}" />
    <echo message="${env.DevEnvDir}" />
    <property environment="env2"/>
    <echo message="${env2.DevEnvDir}" />
    

    2 回复  |  直到 15 年前
        1
  •  4
  •   martin clayton egrunin    16 年前

    而不是打电话 vsvars32.bat 直接从little helper脚本调用它,该脚本使用 set

    辅助脚本 vsenvwrap.bat :

    @echo off
    
    call "%VS90COMNTOOLS%\vsvars32.bat"
    
    set > vsenv.txt
    

    build.xml 调用助手脚本,然后读取设置文件 vsenv.bat

    <exec executable="vsenvwrap.bat" />
    <property file="vsenv.txt" prefix="env2" />
    

    这使用了一个事实,即环境变量列表大多符合java属性文件所需的格式。

        2
  •  2
  •   Alexander Pogrebnyak    16 年前

    您可以创建一个运行ant脚本的小批处理文件,并在调用ant之前在该批处理文件中执行vsvars32.bat。

    @echo off
    
    setlocal
    
    set TEMP_HOME=%~dp0
    
    call "%VS90COMNTOOLS%\vsvars32.bat"
    
    call "%ANT_HOME%\bin\ant.bat" %*
    
    endlocal