2010-12-01 31 views
6


Antタスクを使用してディレクトリを1つのディレクトリに移動する方法はありますか?別のディレクトリからディレクトリを移動するためのAntターゲット

私のディレクトリ構造は次のようである:

my/directory/root 
       |-dir1/one/same/lib 
       |-dir2/two/same/lib 
       |-dir3/three/same/lib 
       |-dir4/four/same/lib 

そして、私は移動して、スケールのフォルダ「と同じ/ libに」と、それを移動したいと思いますが「私の/ディレクトリ/ルート」
(最終的には:私の/ディレクトリ/ root/same/lib)

+0

「スケール」とはどういう意味ですか?4つのディレクトリの内容を1つにマージしますか? –

+0

はい。私はこれらの4つのディレクトリを1つにマージすることを意味します。 –

答えて

4

このような何かが動作するはずです:

<target name="moveDirs"> 
    <mkdir dir="my/directory/root/merged" failonerror="false"> 
    <move todir="my/directory/root/merged"> 
    <fileset dir="my/directory/root"> 
     <include name="dir*/*"/> 
    </fileset> 
    <mapper> 
     <regexpmapper from="^(.*?)dir[0-9]+.(.*)$" to="\1\2"/> 
    </mapper> 
    </move> 
</target> 

参考:

+0

動作しません。私はログを取得する:[移動]私の/ディレクトリ/ルート/ dir1 /同じ –

+0

の自己移動をスキップするか、プロパティファイルでこのフォルダを定義する方法を知っていますか? –

+0

私の更新を見て、おそらくこれは –

1

Ant Move Taskをご覧ください。 次のことを試してみてください。

<target name="moveDirs"> 
    <mkdir dir="my/directory/root/same/lib" failonerror="false"> 
    <move todir="my/directory/root/same/lib"> 
    <fileset dir="my/directory/root/dir1/one/same/lib"> 
     <include name="**/*"/> 
    </fileset> 
    </move> 
    <move todir="my/directory/root/same/lib"> 
    <fileset dir="my/directory/root/dir2/two/same/lib"> 
     <include name="**/*"/> 
    </fileset> 
    </move> 
    <move todir="my/directory/root/same/lib"> 
    <fileset dir="my/directory/root/dir3/three/same/lib"> 
     <include name="**/*"/> 
    </fileset> 
    </move> 
    <move todir="my/directory/root/same/lib"> 
    <fileset dir="my/directory/root/dir4/four/same/lib"> 
     <include name="**/*"/> 
    </fileset> 
    </move> 
</target> 
+0

もっと自動化する方法は分かっていますか? 'dir1' 'dir2'のようなディレクトリはあまりにも多いので。 –

関連する問題