2016-11-15 148 views
0

Hy!比较ANT中的两个字符串

我必须比较ANT中的两个字符串与<equals>任务,但即使控制台显示正确的字符串,它也不适用于我的代码。这是代码:

<echo file="file.txt" append="true">AB${line.separator}</echo> 
<echo file="file.txt" append="true">CD${line.separator}</echo> 

<loadfile property="content" srcFile="file.txt"> 
    <filterchain> 
     <filterreader classname="org.apache.tools.ant.filters.HeadFilter"> 
     <param name="lines" value="1" /> 
     </filterreader> 
    </filterchain> 
</loadfile> 
<echo>${content}</echo> 

      <if> 
       <equals arg1="${content}" arg2="AB" /> 
        <then><echo message="OK"/></then> 
        <else><echo message="not OK"/></else> 
      </if> 

构建的结果是:

11:24:23  [echo] AB 
11:24:23  [echo] not OK 

你能告诉我怎么解决这个问题吗?和thk :) :)

+0

请注意,“if”任务不是标准的ANT功能,它是第三方ant-contrib扩展的一部分。 –

回答

1

我怀疑arg2属性是缺少行分隔符。试试这个:

<equals arg1="${content}" arg2="AB${line.separator}" /> 

或者,甚至更好,尝试清洁所有行分隔符的content

+0

是的!就是这样。谢谢 – Carlinto