2016-12-14 75 views
1

在Windows上,我试图在一个exec()任务中执行后面需要参数的两个命令(.cmd和.exe)。这是为了避免使用两个shell,但只有第一个命令正在执行。如何使用单个Ant exec任务的参数运行多个命令

以下是蚂蚁片段

 <exec executable="cmd" dir="C:\PROGRA~1\IBM\IIB\10.0.0.7\server\bin\"> 
      <arg value="/c mqsiprofile.cmd &amp; C:\PROGRA~1\IBM\IIB\10.0.0.7\server\bin\mqsideploy.exe" /> 
      <arg value="IIBNODE1" /> 
      <arg value="-e" /> 
      <arg value="default" /> 
      <arg value="-a" /> 
      <arg value="${bar.name}" /> 
     </exec> 

我也跑它而不&放大器和更换“PROGRA〜1”,“程序文件”,还是同样的问题。请建议。

回答

0

您可以同时在一个单一的目标:

<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参数。

Ref:How to run multiple commands from ant exec task

相关问题