0

我需要开发一个读取目录内容的 ANT 脚本。此目录中的文件与其名称一起编号。我必须在此目录中找到编号最大的文件并返回其名称和编号。

例如:

>> ls
patch-aaa-050.jar
patch-aaa-051.jar
patch-aaa-052.jar
patch-aaa-053.jar
patch-aaa-054.jar
patch-aaa-055.jar

我需要回应:Latest patch is patch-aaa-055: Patched level: 55

虽然这在Bash, PowerShell or Python. 我对ANT有点无能为力。我已经检查了dirset类型和fileset类型。这些类型能够列出目录,但解析文件名对我来说是压倒性的。该设计仅与 ANT 一起运行,因此我仅限于使用该工具。

谢谢

4

1 回答 1

1

使用资源收集路径结合basename脚本任务fe:

<project>
 <path id="foo">
  <last>
    <sort>
      <fileset dir="C:/WKS/temp" includes="*.jar"/>
    </sort>
  </last>
 </path>

 <basename file="${toString:foo}" property="foobar"/>

 <script language="javascript">
   var a = project.getProperty('foobar').split('.')[0];
   var b = project.getProperty('foobar').split('-')[2].split('.')[0];
   print ('Latest patch is ' + a + ': Patched level: ' + b);
 </script>
</project>

排序还有其他可能,见ant手册

于 2018-12-03T12:13:14.203 回答