我正在将DOS批处理文件转换为Ant。在批处理文件的末尾,我使用DOS dir
命令打印出复制的文件列表,包括大小,日期和时间。我想在Ant脚本的末尾做同样的事情。到目前为止,我有:
<!-- LIST COPIED FILES -->
<target name="summary" depends="backup">
<fileset id="zipfiles" dir="${dest}" casesensitive="yes">
<include name="*.zip"/>
</fileset>
<property name="prop.zipfiles" refid="zipfiles"/>
<echo>${prop.zipfiles}</echo>
</target>
如何修改上述内容以在单独的行上打印每个文件,包括大小,日期和时间?
答案 0 :(得分:3)
有一种基于外部任务套件的解决方案,名为Ant Flaka。 使用Ant Flaka,您可以从文件集访问基础文件对象及其属性(名称,mtime,大小..)。无需通过apply / cmd打开外部进程
<project name="demo" xmlns:fl="antlib:it.haefelinger.flaka">
<fl:install-property-handler />
<!-- as fileset has no absolute pathnames we need
path combined with pathconvert -->
<path id="foobar">
<fileset dir="/home/gilreb/Downloads">
<include name="*.zip"/>
</fileset>
</path>
<pathconvert property="zipfiles" refid="foobar"/>
<!-- iterate over the listentries, get access to
the underlying fileobject and echo its properties -->
<fl:for var="f" in="split('${zipfiles}', ':')">
<echo>
#{ format('filename %s, last modified %tD, size %s bytes', f.tofile.toabs,f.tofile.mtime,f.tofile.size) }
</echo>
</fl:for>
</project>
输出=
...
[echo] filename /some/path/apache-ant-1.8.2-bin.zip, last modified 03/16/11, size 10920710 bytes
[echo]
[echo] filename /some/path/apache-ant-1.8.2-src.zip, last modified 03/16/11, size 8803388 bytes
[echo]
[echo] filename /some/path/apache-ant-antunit-1.1-bin.zip, last modified 04/17/11, size 70477 bytes
...
答案 1 :(得分:2)