【发布时间】:2023-03-11 18:35:01
【问题描述】:
使用 Ant,我必须从备份文件夹中删除除最新的 2 个文件之外的所有文件。
我试图否定last count="2",但找不到正确的资源顺序。
目前我正在这样做:
<delete verbose="true">
<difference>
<resources>
<fileset dir="${backup}"/>
</resources>
<last count="2">
<sort>
<date/>
<resources>
<fileset dir="${backup}"/>
</resources>
</sort>
</last>
</difference>
</delete>
有没有更简单的方法?
【问题讨论】:
-
我认为没有比这更简单的了。您可能想要提取
fileset并给它一个 id 以干燥并仅扫描一次backup。包装resources容器也是多余的,但没有根本不同的方法。 Ant 的一个增强请求是让属性更容易显示“除了最后两个之外的所有” - 可能对first属性使用负数或完全使用单独的属性。 -
感谢@StefanBodewig。我已在bz.apache.org/bugzilla/show_bug.cgi?id=57834 提出增强请求。
-
刚刚解决为已修复,在 Ant 1.9.5 中,您将能够使用
<allbutlast count=2">来实现与当前difference相同的效果。
标签: ant