批量添加标题到ASCII文本文件,可变长度

时间:2012-04-27 08:34:15

标签: text batch-file ascii

我需要在一批ascii(.asc)文件中添加一个简单的单行标题,其中包含可变长度(每个数百万行),并使用相同的文件名保存。我有大量的这些文件。最好用Windows批处理文件完成吗?如果是这样,任何人都可以帮忙解释一下吗?

提前致谢 - 我知道这应该很简单并且已经找到了答案,但找不到任何看起来很合适的东西......

3 个答案:

答案 0 :(得分:1)

由于您只能将某些内容附加到文件中,因此无法通过简单的操作为文本添加前缀 但你可以:

  1. 首先将标题复制到新文件(copy header.template header.tmp
  2. 将原始文件复制到新文件(type original.txt >> header.tmp
  3. 删除原始文件(del original.txt
  4. 将您的新文件重命名为原始名称(ren header.tmp original.txt
  5. 编辑:

    for %%F in (*.txt) DO (
      echo Working on %%F
      copy header.template newFile.tmp
      type "%%~F" >> newFile.tmp
      del "%%~F"
      copy newFile.tmp "%%~F"
    )
    

答案 1 :(得分:1)

如果不重写整个文件,就无法做到这一点。

未经测试的批处理文件:

move source.asc source.asc.tmp
echo "header" > source.asc
type source.asc.tmp >> source.asc
del source.asc.tmp

根据其他答案,可以像这样完成多个文件(这次实际测试过):

for %%F in (*.asc) DO (
    move "%%F" tmp.txt
    echo header > "%%F"
    type tmp.txt >> "%%F"
    del tmp.txt
)

答案 2 :(得分:1)

虽然jeb的答案解决了这个问题,但我认为下面的方法应该运行得更快,因为它使用了更少的命令和“批量重命名”操作:

for %%F in (*.txt) do (
   echo Working on %%F
   copy header.template + "%%F" "%%~nF.tmp"
)
move /Y *.tmp *.txt