Regex Ant:如何为父文件夹编写映射程序

Regex Ant:如何为父文件夹编写映射程序,regex,ant,apply,mapper,Regex,Ant,Apply,Mapper,环境:Windows 2008 R2 JDK:1.7.0_45(x64) 蚂蚁:1.8.3 我正试图提取一些cab文件。为便于讨论,假设以下布局: A/L/X.cab B/M/Y.cab C/N/Z.cab 我尝试的是: <fileset id="cabfiles" dir="[correct path to parent of A,B,C]"> <include name="**/*.cab"/> </fileset> <apply exec

环境:Windows 2008 R2 JDK:1.7.0_45(x64) 蚂蚁:1.8.3

我正试图提取一些cab文件。为便于讨论,假设以下布局:

A/L/X.cab
B/M/Y.cab
C/N/Z.cab
我尝试的是:

<fileset id="cabfiles" dir="[correct path to parent of A,B,C]">
    <include name="**/*.cab"/>
</fileset>
<apply executable="expand" failonerror="true">
    <arg value="-r"/>
    <srcfile/>
    <arg value="-F:*"/>
    <targetfile/>
    <fileset refid="cabfiles"/>
    <regexpmapper from="(.*)\${file.separator}" to="\1"/>
</apply>
相反,我看到:

Execute:Java13CommandLauncher: Executing 'expand' with arguments:
'-r'
'[absolute path to]\A\L\X.cab'
'-F:*'
'C:\\A\X'
我不希望引入对ant contrib的依赖(除非这是唯一的出路)

  • 使用单个(或链接的)映射器将文件夹路径作为参数传递给应用任务是否可能(且符合逻辑)
  • 如果cab文件在创建父文件夹后下载到其各自的父文件夹中(但很明显),映射程序是否会检测到该文件夹已过期(w.r.t.)?或者只是跳过提取
    • 我想出来了

      使用

      应用任务上的属性

      Execute:Java13CommandLauncher: Executing 'expand' with arguments:
      '-r'
      '[absolute path to]\A\L\X.cab'
      '-F:*'
      'C:\\A\X'
      
      relative="true" and dir="[absolute path to]"