我有幾個需要與「預期」輸出文件夾進行比較的程序輸出。但我的問題是輸出文件總是有不同的文件名。將文件重命名爲基於其他目錄的目錄
如何將一個文件夾中的所有文件重命名爲另一個文件夾中的相同文件名。下面的例子 - 預期的文件結構(當然改變的也可以):
expected/folder1/file1.txt
expected/folder1/file2.txt
expected/folder2/file1.txt
expected/folder3/file1.txt
而且我的輸出看起來是這樣的(大量的文件和位置總是等於):
result/folder1/fileOtherName1.txt
result/folder1/fileOtherName2.txt
result/folder2/fileOtherName1.txt
result/folder3/fileOtherName1.txt
我嘗試使用ANT (因爲我知道),但被卡住了,因爲我無法通過索引選擇文件(按字母順序排序)。
這裏我在ANT僞代碼(但不知道如何繼續):
<target name="foo">
<foreach>
<fileset dir="result" casesensitive="yes">
<include name="**/*.txt"/>
</fileset>
<antcall target="rename">
</antcall>
</foreach>
</target>
<target name="rename">
<!-- how can I access another fileset and take the correct file? -->
<!-- Here I got stuck -->
<echo message="foreach.file is ${foreach.file}" />
<echo message="foreach.dir is ${foreach.dir}" />
<echo message="foreach.name.ext is ${foreach.name.ext}" />
<echo message="foreach.name is ${foreach.name}" />
</target>
感謝您的幫助,它不能在ANT唯 - 一個BASH腳本或類似的能也做這項工作。
你怎麼知道哪個結果文件名應該匹配哪個文件名?你只是刪除一個固定的部分?我還有其他一些東西嗎? –
這取決於每個文件夾中文件的字母順序。所以「fileOtherName1」應該重命名爲file1等等。結果中的第一個文件在預期中重命名爲第一個文件名。 – FiveO