我的意图是使用ant脚本并行运行两个批处理文件。
操作系统: Windows 7
我试过了,但不起作用。
<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>有人能帮帮忙吗?
发布于 2016-05-26 16:13:51
“请注意,.bat文件一般不能直接执行。通常需要使用/c开关执行命令外壳可执行命令。”- https://ant.apache.org/manual/Tasks/exec.html
<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()。
也更改了你的代码
<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>改成在文件名前加上相对路径,也许这样就可以了?
https://stackoverflow.com/questions/37454920
复制相似问题