如何将文本插入文件

时间:2015-10-09 20:23:19

标签: windows batch-file

如何使用批处理在文本文件的开头插入字符串?是否可以在不创建临时文件或新文件的情况下这样做?

我目前正在使用copy合并两个文件,但这样效率非常低,因为我的文件大了几GB。

我想做copy "string1"+file1 file1

之类的事情

谢谢!

2 个答案:

答案 0 :(得分:3)

在文件开头插入文本时无法避免复制。

如果您的文件位于传统的HDD驱动器(而不是SSD)上,您唯一可以做的就是将其复制到不同的本地物理驱动器(最好是更快的驱动器),然后将文件移回。

>tmp.txt echo Some text
copy /b tmp.txt + bigfile d:\another_physical_drive\file.tmp
del tmp.txt
move /y d:\another_physical_drive\file.tmp bigfile

它适用于HDD,因为在使用内置驱动器在同一物理驱动器中复制时,顺序写入或读取速度比频繁的搜索 - 读取 - 写入(也称为磁盘抖动)高10倍(甚至更多)在命令中。只有一些罕见的第三方实用程序是智能的,并且可以读取非常大的块,例如填充RAM高达50%,然后执行无缓冲写入以跳过OS缓存,因此基本上总是执行顺序访问。

答案 1 :(得分:2)

无法避免将整个结果写入磁盘。我会使用以下内容:

>"bigfile.txt.new" ( echo Some text&type "bigfile.txt" )
move /y "bigfile.txt.new" "bigfile.txt" >nul

重要的是MOVE几乎是即时的,它是一个单独的操作,相当于删除原始文件,然后将temp重命名为原始名称。