首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从ant脚本并行运行2个或更多批处理文件?

如何从ant脚本并行运行2个或更多批处理文件?
EN

Stack Overflow用户
提问于 2016-05-26 16:00:31
回答 1查看 512关注 0票数 1

我的意图是使用ant脚本并行运行两个批处理文件。

操作系统: Windows 7

我试过了,但不起作用。

代码语言:javascript
复制
<project name="RBS" basedir=".">
    <!--<property name="buildC" value="${basedire}\build-C" /> -->
<target name="start batch parallely">
<parallel >
    <exec dir="RBS" executable="cmd" os="Windows 7">
        <arg line="/c run_parallel.bat"/>
    </exec>
   <exec dir="RBS\Retail_R6" executable="cmd" os="Windows 7">
        <arg line="/c RetailAutomation_R7.bat"/>
    </exec> 
</parallel>
</target>
</project>

有人能帮帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-26 16:13:51

“请注意,.bat文件一般不能直接执行。通常需要使用/c开关执行命令外壳可执行命令。”- https://ant.apache.org/manual/Tasks/exec.html

代码语言:javascript
复制
<exec executable="cmd">
    <arg value="/c"/>
    <arg value="ant.bat"/>
    <arg value="-p"/>
  </exec>

此外,<exec></exec>本质上将运行bat或任何文件扩展名的windows CreateProcess()应用程序接口包装为它自己的进程,这意味着它将并行运行。不是很积极,但我相信你的<parallel></parallel>只会异步启动.bats。

另外,我会继续关注msdn for the windows,以确保您正确使用<exec></exec> for CreateProcess()

也更改了你的代码

代码语言:javascript
复制
<project name="RBS" basedir=".">
    <!--<property name="buildC" value="${basedire}\build-C" /> -->
<target name="start batch parallely">
<parallel >
    <exec executable="cmd">
        <arg value="/c"/>
        <arg value="RBS/run_parallel.bat"/> 
    </exec>
   <exec executable="cmd">
        <arg value="/c"/>
        <arg value="RBS/Retail_R6/RetailAutomation_R7.bat"/> 
    </exec> 
</parallel>
</target>
</project>

此外,.bats必须位于工作目录的底部。如果没有的话,把第二个<arg value>改成在文件名前加上相对路径,也许这样就可以了?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37454920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档