ANT读取文件名并将其插入同一文件的标记中

时间:2014-10-22 18:25:05

标签: javascript ant

我想使用ANT版本或可能是javascript来执行此操作:

For each file in a directory,
   read the filename.
   insert the filename into an xml tag inside the same file. 

例如,让我们说一个名为File_Name_One.txt的文件,其内容包含<title>fileName-one</title>。此内容将改为<title>File_Name_One</title>

它需要循环浏览所有文件,并使用当前正确的文件名替换<title>标记中的内容,减去扩展名。

我可以处理替换<title>标记中的内容所需的replaceregexp任务,但不知道如何读取和加载文件名,以及如何将其插入到它来自的文件中。我想也许pathconvert会成为如何做到的一部分,但我不知道如何做。

谢谢,

1 个答案:

答案 0 :(得分:0)

您是要扫描目录搜索文件还是在 File_Name_One.txt 中提供文件名?

检查ant-contrib库。您可以使用PropertyRegexForeach这样的好任务......

如果要扫描目录中的文件,请尝试以下代码:

<property name="nl" value="${line.separator}"/>
<target name="test1">
    <taskdef resource="net/sf/antcontrib/antcontrib.properties">
        <classpath>
            <pathelement location="lib/ant-contrib-1.0b3.jar"/>
        </classpath>
    </taskdef>

    <foreach target="gogogo" param="theFile">
        <fileset dir="${basedir}" casesensitive="yes">
          <include name="**.*"/>
        </fileset>
      </foreach>
</target>

<target name="gogogo">
    <echo message="${theFile}"/>
    <concat append="true" destfile="out.txt">&lt;title&gt;${theFile}&lt;/title&gt;${nl}</concat>
</target>

out.txt 的示例内容为:

<title>C:\workspace\.project</title>
<title>C:\workspace\TestANT.xml</title>
<title>C:\workspace\out3.txt</title>
相关问题