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



我想从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>

,但它只执行第一个命令,跳过第二个命令。

应该可以。简单地链接命令。

<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>

为什么需要在单个<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参数

相关内容

  • 没有找到相关文章

最新更新