0

という 1 つのC:/dir2/ファイルがあり、それには というfile2.txt 1C:/dir3/つのファイルがあるとします。file3.txt

この ant スクリプト:

<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>

次に、次のように、ディレクトリごとに 1 行が表示されます。

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