【问题标题】:How to run multiple commands from ant exec task如何从 ant exec 任务运行多个命令
【发布时间】:2015-07-14 08:44:34
【问题描述】:

我想从 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 操作系统上尝试这个。

【问题讨论】:

    标签: ant dos


    【解决方案1】:

    这应该可行。简单地链接命令。

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

    【讨论】:

    • 我之前试过了,但是给我一个未知字符“&”的错误
    • 我上面的脚本有效。但是带有实体掩码的&符号
    • 我带着同样的问题来到这里,这完美地回答了它。我第一次尝试&amp;amp;,但 ANT 抱怨这个角色,但&amp;amp; 成功了。谢谢。
    【解决方案2】:

    为什么需要在单个&lt;exec&gt; 任务中运行两个命令?相反,只需使用第二个&lt;exec&gt; 任务。您可以将两者都包含在一个目标中:

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

    或者更好的是,只需使用&lt;echo&gt; 任务:

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

    【讨论】:

      猜你喜欢
      • 2011-04-25
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 2012-08-09
      • 2015-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多