3

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

在此先感谢-我知道这应该很简单,并且已经搜索了答案,但没有找到任何看起来很正确的东西...

4

3 回答 3

1

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

for %%F in (*.txt) do (
   echo Working on %%F
   copy header.template + "%%F" "%%~nF.tmp"
)
move /Y *.tmp *.txt
于 2012-04-28T01:36:16.257 回答
1

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

  1. 首先将您的标题复制到新文件(copy header.template header.tmp
  2. 将原始文件复制到新文件 ( type original.txt >> header.tmp)
  3. 删除您的原始文件 ( del original.txt)
  4. 将新文件重命名为原始名称 ( 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"
)
于 2012-04-27T08:42:37.530 回答
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
)
于 2012-04-27T08:43:12.007 回答