Как найти файл в каталоге, прочитать его имена и распечатать файл с наибольшим номером с помощью Ant?

Мне нужно разработать сценарий 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 Type и fileset Type. Эти типы могут перечислять каталоги, но разбор имен файлов для меня непосильный. Дизайн предназначен для работы только с ANT, поэтому я ограничен в использовании этого инструмента.

Спасибо


person Dilshad Abduwali    schedule 03.12.2018    source источник


Ответы (1)


Используйте путь сбора ресурсов в сочетании с базовое имя и сценарий, например:

<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.

person Rebse    schedule 03.12.2018