0

假设C:/dir2/有一个名为的文件file2.txt 并且C:/dir3/有一个名为的文件file3.txt

这个蚂蚁脚本:

<copy todir="C:/dir1">
    <zipfileset dir="C:/dir2" prefix="dirprefix2"/>
    <zipfileset dir="C:/dir3" prefix="dirprefix3"/>
</copy>

将文件复制到:

C:/dir1/file2.txt
C:/dir1/file3.txt

但我希望它复制到:

C:/dir1/dirprefix2/file2.txt
C:/dir1/dirprefix3/file3.txt

任何人都知道我做错了什么?

4

1 回答 1

1

该属性prefix仅在创建档案时使用。

以下应该可以正常工作:

<copy todir="C:/dir1/dirprefix">
    <zipfileset dir="C:/dir2"/>
</copy>

或者,您可以使用宏:

<macrodef name="mycp">
  <attribute name="dir"/>
  <attribute name="todir" default="C:/dir1"/>
  <attribute name="prefix"/>
  <sequential>
    <copy todir="@{todir}/@{prefix}">
        <fileset dir="@{dir}/"/>
    </copy>
  </sequential>
</macrodef>

然后每个目录将有一行,如下所示:

<mycp dir="C:/dir2" prefix="dirprefix2"/>
<mycp dir="C:/dir3" prefix="dirprefix3"/>
...
于 2012-11-09T15:10:53.070 回答