1

我在尝试迭代属性文件中定义的值时遇到问题。我正在尝试循环读取 jar 文件并将它们复制到目录中。jar 文件名在属性文件中定义。这是我的示例文件:

<?xml version="1.0"?><project name="beehive" basedir=".">

<taskdef resource="net/sf/antcontrib/antlib.xml"/>

<loadfile property="file.list" srcFile="test.txt">
    <!--<filterchain>
        <striplinebreaks/>
    </filterchain>-->
</loadfile>

<target name="testtarget">
    <for list="${file.list}" param="fileName">
        <sequential>
            <echo>@{fileName}</echo>
            <copy file="C:/Development/Doc/Build/@{fileName}" todir="C:/Development/Doc/Build/testdir">
            </copy>
        </sequential>
    </for>
</target>

这是 test.txt 中的条目。

wikihelp-1.0.0.jar

速度-1.0.0.jar

我期望 for 循环一次读取一个文件名,然后执行复制。相反,它一起读取 2 个文件名并抛出以下异常:

警告:找不到要复制的文件 C:\Development\Doc\Build\wikihelp-1.0.0.jar velocity-1.0.0.jar。

任何指针将不胜感激。

  • 谢谢
4

1 回答 1

4

发现问题,添加delimiter="${line.separator } 解决了

在 for 循环中,我需要为行分隔符添加分隔符

<for list="${file.list}" param="fileName" delimiter="${line.separator}">
于 2011-08-12T22:08:02.413 回答