Text 批量向ASCII文本文件添加标题,可变长度
我需要向一批ascii(.asc)文件添加一个简单的单行标题,长度可变(每行几百万行),并使用相同的文件名保存。我有很多这样的文件。这最好使用windows批处理文件来完成吗?如果是的话,有人能解释一下怎么做吗Text 批量向ASCII文本文件添加标题,可变长度,text,batch-file,ascii,Text,Batch File,Ascii,我需要向一批ascii(.asc)文件添加一个简单的单行标题,长度可变(每行几百万行),并使用相同的文件名保存。我有很多这样的文件。这最好使用windows批处理文件来完成吗?如果是的话,有人能解释一下怎么做吗 提前感谢-我知道这应该很简单,并且已经搜索了答案,但没有找到任何似乎完全正确的答案…由于您只能将某些内容附加到文件中,因此无法通过简单的操作为文本添加前缀。 但你可以: 首先将标题复制到新文件(copy header.template header.tmp) 将原始文件复制到新文件中(键
提前感谢-我知道这应该很简单,并且已经搜索了答案,但没有找到任何似乎完全正确的答案…由于您只能将某些内容附加到文件中,因此无法通过简单的操作为文本添加前缀。
但你可以:
copy header.template header.tmp
)键入original.txt>>header.tmp
)del original.txt
)ren header.tmp original.txt
)for %%F in (*.txt) DO (
echo Working on %%F
copy header.template newFile.tmp
type "%%~F" >> newFile.tmp
del "%%~F"
copy newFile.tmp "%%~F"
)
要做到这一点,必须重写整个文件 未测试的批处理文件:
move source.asc source.asc.tmp
echo "header" > source.asc
type source.asc.tmp >> source.asc
del source.asc.tmp
根据其他答案,可以这样做多个文件(这次实际测试):
虽然jeb的回答解决了这个问题,但我认为下面的方法在处理大量文件时应该运行得更快,因为它使用更少的命令和“批量重命名”操作:
for %%F in (*.txt) do (
echo Working on %%F
copy header.template + "%%F" "%%~nF.tmp"
)
move /Y *.tmp *.txt
+1,但是你应该删除
source.asc.tmp
而不是刚刚创建的source.asc
啊,谢谢,我在电车站之间的电话上潦草写下了这个:)谢谢dwurf,但是我如何让批处理文件在多个文件上运行,即在一个包含50个.asc文件的目录中运行?谢谢Jeb,这看起来不错。。。显示出我的无知,但我如何让bat将每个文件作为“原始文件”使用,然后移动到目录中的下一个文件并执行相同的操作?在所有文件上添加FOR循环谢谢Jeb-这在初始测试后看起来非常完美。我知道是这样,但需要帮助。。。再次感谢。COPY/B header.template+“%%~F”newFile.tmp
?是的。1000.txt文件上有1000个。另一个:MOVE/Y newFile.tmp“%%~F”
:)(虽然,老实说,我自己通常更喜欢del
+copy
而不是move
)是的,这更短,可能更快,但它也需要更多的磁盘空间,因为它会暂时将处理的.txt
文件占用的空间增加一倍。(是的,我知道:“空间很便宜”等等,但我仍然觉得这个细节值得一提。)但是,当然,它很可能会在任何现代Windows PC上运行,所以它是+1,只需注意一点:我会将/B
开关添加到copy
命令中,以避免在目标文件末尾附加讨厌的0x1A
。
for %%F in (*.txt) do (
echo Working on %%F
copy header.template + "%%F" "%%~nF.tmp"
)
move /Y *.tmp *.txt