我想在以下条件下使用ANT将一些特定的文件从源目录复制到目标目录。
源文件夹包含以下文件
- 35001 _abc.sql
- 38001 _abc.sql
- 38002 _abc.sql
- 39001 _abc.sql
我要复制文件名以36000及以上开头的文件。
Output目录应该包含以下文件
- 38001 _abc.sql
- 38002 _abc.sql
- 39001 _abc.sql
一个想法是在文件名上使用正则表达式来限制数字的范围。
<标题> 例子├── build.xml
├── src
│ ├── 35001_abc.sql
│ ├── 38001_abc.sql
│ ├── 38002_abc.sql
│ ├── 39001_abc.sql
│ ├── 41001_abc.sql
│ └── 46001_abc.sql
└── target
├── 38001_abc.sql
├── 38002_abc.sql
├── 39001_abc.sql
├── 41001_abc.sql
└── 46001_abc.sql
build . xml
<project name="demo" default="copy">
<property name="src.dir" location="src"/>
<property name="build.dir" location="target"/>
<target name="copy">
<copy todir="${build.dir}" overwrite="true" verbose="true">
<fileset dir="${src.dir}">
<filename regex="^(3[6-9]|[4-9]d)d{3}_abc.sql$"/>
</fileset>
</copy>
</target>
<target name="clean">
<delete dir="${build.dir}"/>
</target>
</project>
标题>