我需要爲一批ascii(.asc)文件添加一個簡單的單行標題,長度可變(每行數百萬行),並使用相同的文件名保存。我有大量的這些文件。這是最好的與Windows批處理文件?如果有的話,誰能幫忙解釋一下?將批量添加到ASCII文本文件的可變長度
謝謝高級 - 我知道這應該是簡單,已經尋找一個答案,但沒有發現任何東西,似乎很正確...
我需要爲一批ascii(.asc)文件添加一個簡單的單行標題,長度可變(每行數百萬行),並使用相同的文件名保存。我有大量的這些文件。這是最好的與Windows批處理文件?如果有的話,誰能幫忙解釋一下?將批量添加到ASCII文本文件的可變長度
謝謝高級 - 我知道這應該是簡單,已經尋找一個答案,但沒有發現任何東西,似乎很正確...
正如你只能將一些東西附加到一個文件,你不能這樣做用簡單的操作爲文本添加前綴。
但是你可以:
copy header.template header.tmp
)type original.txt >> header.tmp
)del original.txt
)ren header.tmp original.txt
)EDI T:
for %%F in (*.txt) DO (
echo Working on %%F
copy header.template newFile.tmp
type "%%~F" >> newFile.tmp
del "%%~F"
copy newFile.tmp "%%~F"
)
如果不重寫整個文件,沒有辦法做到這一點。
未經測試的批處理文件:
按照對方的回答(S),多個文件可以這樣做(其實這次測試):
for %%F in (*.asc) DO (
move "%%F" tmp.txt
echo header > "%%F"
type tmp.txt >> "%%F"
del tmp.txt
)
儘管傑布的回答解決了這個問題,我認爲下面的方法在運行大量文件時運行得更快,因爲它使用更少的命令和「批量重命名」操作:
for %%F in (*.txt) do (
echo Working on %%F
copy header.template + "%%F" "%%~nF.tmp"
)
move /Y *.tmp *.txt
是的,這是更短的,可能更快,但它也需要更多的磁盤空間,因爲它暫時加倍處理'.txt'文件佔用的空間。 (是的,我知道:「空間很便宜」等等,但我仍然發現值得一提的細節)。但是,當然,它很可能運行在任何現代Windows PC上,因此它是+1,只有一個音符:我會將'/ B'開關添加到'copy'命令以避免在目標文件末尾添加令人討厭的'0x1A'。 – 2012-05-08 06:24:55
謝謝傑布,這看起來不錯...顯示我的無知,但我如何讓那隻蝙蝠將每個文件用作'原始',然後移動到目錄中的下一個文件並執行相同的操作? – MGC77 2012-04-27 09:04:42
在您的所有文件中添加一個FOR循環 – jeb 2012-04-27 09:39:23
感謝Jeb-在初始測試後,這看起來很完美。我知道這是類似的東西,但需要幫助...再次感謝。 – MGC77 2012-04-27 09:48:38