我有一个简单的蚂蚁任务,该任务列出了一个文件夹中的所有'.png'文件:

<target name="listimages">
    <!-- Assume files a A and B -->
    <fileset id="dist.contents" dir="${basedir}">
        <include name="**/*.png"/>
    </fileset>

    <pathconvert pathsep="${line.separator}"
                 property="prop.dist.contents" 
                 refid="dist.contents">
        <mapper type="flatten" />
        <map from="${basedir}" to=""/>
    </pathconvert>
    <echo>${prop.dist.contents}</echo>
</target>

这是打印的

[echo] A.png
[echo] B.png

但是,我想要的是文件名出现 两次 在每行。

[echo] A.png,A.png
[echo] B.png,B.png

我怎样才能做到这一点?

(这个问题是跟进 如何将文件集打印到文件,每行一个文件名?)

有帮助吗?

解决方案

您可以使用 REGEXP映射器 (而不是变平)实现扁平和复制。这很简单,但可能会这样:

<mapper type="regexp" from=".*/(.*)" to="\1,\1" />

需要调整本地路径分离器。

不过,更好的是,请使用链式设备来代替扁平化:

<chainedmapper>
    <mapper type="flatten" />
    <mapper type="regexp" from="(.*)" to="\1,\1" />
</chainedmapper>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top