我想从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} & 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
参数