我正在与mqfte合作。在将文件传输到目标文件后,我必须创建一个与源文件具有相同名称的空txt文件。如何使用ant脚本来做到这一点?如何使用ant脚本在分布式系统中创建文件?
场景:
Srcpath:\ SRC \ TEST.DAT destpath:\ DEST \ TEST.DAT
文件后从SRC路径移动,我需要创建一个空文件TEST.DAT在使用ant脚本的src路径中?如何才能做到这一点?
我正在与mqfte合作。在将文件传输到目标文件后,我必须创建一个与源文件具有相同名称的空txt文件。如何使用ant脚本来做到这一点?如何使用ant脚本在分布式系统中创建文件?
场景:
Srcpath:\ SRC \ TEST.DAT destpath:\ DEST \ TEST.DAT
文件后从SRC路径移动,我需要创建一个空文件TEST.DAT在使用ant脚本的src路径中?如何才能做到这一点?
在传输文件之前,可以使用Touch任务在临时目录中创建与将要传输的文件(重复使用相同的文件集)相匹配的新空文件。传输完成后,您可以使用Move任务将空文件复制到您的src目录中。您可以在Move任务中使用overwrite =“false”来确保保留在src目录中的文件不会被替换(例如,如果您想确保只有空文件才能成功传输)。
这里是一个例子。
<project default="test">
<target name="test">
<touch>
<fileset dir="src">
<include name="test*"/>
</fileset>
<mapper type="regexp" from="(.*)" to="tmp/\1"/>
</touch>
<move todir="dest">
<fileset dir="src">
<include name="test*"/>
<!-- simulate file not transferred -->
<exclude name="test.doc"/>
</fileset>
<globmapper from="test.*" to="result_*.txt"/>
</move>
<move todir="src" overwrite="false">
<fileset dir="tmp"/>
</move>
</target>
</project>
第一步代表您的转移。一个文件(test.doc)不会移出src目录(模拟失败的传输)。您可以测试是否在src目录中创建了包含一些内容的文件。目标完成后,test.doc仍应具有其原始内容。其他文件应该是空的。
针对你对正则表达式映射问题:
<mapper type="regexp" from="(.*)" to="tmp/\1"/>
这整个输入文件名的捕获到一组...
from="(.*)"
,并预置“TMP /”来被捕获的组...
to="tmp/\1"
(在正则表达式中\1
指的是第一个capt在表达中ured组。 )
因此,从src/somefile.txt
开始,我们将somefile.txt
作为映射器的输入文件,我们将其转换为tmp/somefile.txt
。
谢谢Sudocode !!!!!!!! – trilawney 2011-05-27 09:58:29
在触摸任务中,(to =“tmp/\ 1)参数是干什么用的?你能解释一下吗...在apache站点不清楚... – trilawney 2011-05-31 10:02:55
非常感谢!!!!!!! !!!!!! – trilawney 2011-06-06 07:49:02