我正在與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