首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将Ant文件集转换为多个应用参数

将Ant文件集转换为多个应用参数
EN

Stack Overflow用户
提问于 2010-01-28 00:03:44
回答 1查看 6.5K关注 0票数 18

我有一些文件:

dir/foo.txt
dir/bar.txt
dir/foobar.txt

在Ant apply任务中,我希望将文件列表作为参数传递:

<target name="atask">
    <apply executable="${cmd}" parallel="false" verbose="true">
        <arg value="-in"/>
        <srcfile/>
        <arg value="dir/foo.txt"/>
        <arg value="dir/bar.txt"/>
        <arg value="dir/foobar.txt"/>

        <fileset dir="${list.dir}" includes="*.list"/>
    </apply>
</target>

这很好用,但如果我想使用文件集动态选择文件列表,该怎么办:

<fileset dir="dir" includes="*.txt"/>

如何将此文件集转换为arg元素-每个文件一个元素?类似于:

<arg>
    <fileset dir="dir" includes="*.txt"/>
</arg>

而不是

<arg value="dir/foo.txt"/>
<arg value="dir/bar.txt"/>
<arg value="dir/foobar.txt"/>

(此示例不起作用,因为arg不支持fileset__)

EN

回答 1

Stack Overflow用户

发布于 2010-01-28 07:19:38

下面是一个示例,说明了pathconvert任务的用法。

使用<arg line />将转换后的路径传递给可执行文件。

这假设*.txt文件的路径中没有空格。

<target name="atask">
    <fileset dir="dir" id="myTxts">
        <include name="*.txt" />
    </fileset>
    <pathconvert property="cmdTxts" refid="myTxts" pathsep=" " />

    <apply executable="${cmd}" parallel="false" verbose="true">
        <arg value="-in" />
        <srcfile />
        <arg line="${cmdTxts}" />

        <fileset dir="${list.dir}" includes="*.list" />
    </apply>
</target>

如果您可能遇到空格,应该这样做:如上所述,但将(希望明显的哪些行)改为:

    <pathconvert property="cmdTxts" refid="myTxts" pathsep="' '" />

        <arg line="'${cmdTxts}'"/>
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2148390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档