从ANT运行BAT文件



我已经浏览了论坛上的许多帖子,但无法整理。我正在尝试从ANT脚本运行一个BAT文件。文件夹层次结构如下

- Project
| - build.xml
| - build-C
| | - test.bat

我写的ANT文件是

<project name="MyProject" basedir=".">
    <property name="buildC" value="${basedire}build-C" />
    <exec dir="${buildC}" executable="cmd" os="Windows XP">
        <arg line="/c test.bat"/>
    </exec>
</project>

bat文件内容为

echo In Build-C Test.bat

上面说构建失败了..:我不知道我做错了什么?

<property name="buildC" value="${basedire}build-C" />

我想这应该是${basedir}吧?使用

<echo>${buildC}</echo>

以确保目录正确。

不应该

<exec dir="${buildC}" executable="test.bat" os="Windows XP" />

做这份工作?

希望这将有助于扩展已经给出/接受的答案:

我建议使用批处理脚本作为参数执行cmd

<exec failonerror="true" executable="cmd" dir="${buildC}">
  <arg line="/c &quot;${buildC}/test.bat&quot;"/>
</exec>

由于指定了dir,所以不确定是否有必要使用绝对路径&quot;${buildC}/test.bat&quot;,但我只是以防万一。使用/c test.bat可能就足够了。

我的项目在Windows操作系统上执行批处理脚本;所有其他脚本上的shell脚本。这里有一个例子:

<target name="foo">
  <!-- properties for Windows OSes -->
  <condition property="script.exec" value="cmd">
    <os family="windows"/>
  </condition>
  <condition property="script.param" value="/c &quot;${basedir}/foo.bat&quot;">
    <os family="windows"/>
  </condition>
  <!-- properties for non-Windows OSes -->
  <property name="script.exec" value="sh"/>
  <property name="script.param" value="&quot;${basedir}/foo.sh&quot;"/>
  <echo message="Executing command: ${script.exec} ${script.param}"/>
  <exec failonerror="true" executable="${script.exec}" dir="${basedir}">
    <arg line="${script.param}"/>
  </exec>
</target>

相关内容

  • 没有找到相关文章

最新更新