如何在ant exec任务中运行多个命令

4
我希望能够在Ant exec任务中运行两个dos命令。
我已经尝试了以下代码:
<exec dir="${testworkspace}\${moduleName}" executable="cmd" failonerror="true" output="${testworkspace}\${moduleName}\BuildConsole_TC${tc_num}.log" resultproperty="execrc">
                    <arg value="/c echo Download Status is ${DownloadStatus}"/>
                    <arg value="/c Load.bat ${moduleName} ${Intapp} ${CcvStatus}"/>
                </exec>

但它只执行第一个命令并跳过第二个。 我正在尝试在Windows操作系统上执行此操作。

2个回答

5
这应该可以。只需链接这些命令即可。
<exec dir="${testworkspace}\${moduleName}" executable="cmd" failonerror="true" output="${testworkspace}\${moduleName}\BuildConsole_TC${tc_num}.log" resultproperty="execrc">
    <arg value="/c echo Download Status is ${DownloadStatus} &amp; Load.bat ${moduleName} ${Intapp} ${CcvStatus}"/>
</exec>

我之前尝试过,但是出现了未知字符“&”的错误。 - Pravin Virkud
上面的脚本是有效的。但是当实体被掩码化为“&”时…… - Hank Lapidez
1
我也有同样的问题,这个答案解决了我的疑惑。我最初尝试使用&符号,但ANT报错了,但是使用&amp;就可以了。谢谢。 - Tenzin

1
为什么需要在一个<exec>任务中运行两个命令?相反,只需使用第二个<exec>任务。您可以将两者都包含在一个单独的目标中:
 <target name="execute.this">
     <exec dir="${testworkspace}\${moduleName}" 
         executable="cmd" failonerror="true" 
         output="${testworkspace}/${moduleName}/BuildConsole_TC${tc_num}.log" 
         resultproperty="execrc">
         <arg value="/c echo Download Status is ${DownloadStatus}"/>

     <exec dir="${testworkspace}\${moduleName}" 
         executable="cmd" failonerror="true" 
         output="${testworkspace}/${moduleName}/BuildConsole_TC${tc_num}.log" 
         resultproperty="execrc">
         <arg value="/c Load.bat ${moduleName} ${Intapp} ${CcvStatus}"/>
     </exec>

或者更好的方法是,只需使用<echo>任务:
     <echo message="/c echo Download Status is ${DownloadStatus}"/>
     <exec dir="${testworkspace}\${moduleName}" 
         executable="cmd" 
         failonerror="true" 
         output="${testworkspace}/${moduleName}/BuildConsole_TC${tc_num}.log" 
         resultproperty="execrc">
         <arg value="/c Load.bat ${moduleName} ${Intapp} ${CcvStatus}"/>
     </exec>

如果您需要在同一文件中获取echo任务的输出,则可以在echo命令中使用file参数,并在exec任务中使用append参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接