如何使用Ant脚本迭代文件内容?

时间:2011-02-23 07:04:39

标签: ant

我需要从文件中读取数据并对其进行进一步处理。

实际上我只需要压缩那些被修改过的文件。所以准备了一个tracksheet.txt,其中包含源代码中所有已修改文件的列表。

tracksheet.txt文件中读取每个文件,从svn获取并压缩它。

2 个答案:

答案 0 :(得分:9)

您可以使用Ant的loadfile任务加载文件的内容。例如,假设每个条目都在一个单独的行上,它看起来像这样:

<loadfile
  property="changed.files"
  srcFile="tracksheet.txt">
  <filterchain>
    <striplinebreaks/>
  </filterchain>
</loadfile>

然后,您可以使用Ant-Contrib的forforeach任务循环遍历属性中的所有值。例如:

<for list="${changed.files}" param="changedFile">
  <sequential>
    <echo>TODO fetch the file @{changedFile} from SVN</echo>
    <echo>TODO zip the file @{changedFile}</echo>
  </sequential>
</for>

请注意,Ant-Contrib不是标准安装的一部分。你需要一个单独的罐子。安装/使用说明在网站上:http://ant-contrib.sourceforge.net

答案 1 :(得分:0)

与克里斯相似他的回答:

<loadfile property="changed.files" srcFile="tracksheet.txt"/>

<for list="${changed.files}" param="changedFile" delimiter="${line.separator}">
  <sequential>
    <echo>@{changedFile}</echo>
  </sequential>
</for>