37

在命令行(Windows)中将文本添加到另一个文本文件开头的最简单方法是什么?

4

7 回答 7

54
echo "my line" > newFile.txt
type myOriginalFile.txt >> newFile.txt
type newFile.txt > myOriginalFile.txt

未经测试。双 >> 表示“追加”

于 2009-02-15T11:23:06.820 回答
23

主题的另一种变化。

(echo New Line 1) >file.txt.new
type file.txt >>file.txt.new
move /y file.txt.new file.txt

与其他已发布答案相比的优势:

  • 最少步数
  • 没有剩余临时文件
  • 括号防止在第一行出现不需要的尾随空格
  • 移动命令“立即”用新版本替换旧版本
  • 原始文件保持不变,直到它被替换的最后一刻
  • 最终内容只写入一次 - 如果文件很大,则可能很重要。
于 2013-11-20T22:24:52.260 回答
9

以下序列将执行您想要的操作,将“ new first line”行添加到file.txt文件中。

ren file.txt temp.txt
echo.new first line>file.txt
type temp.txt >>file.txt
del temp.txt

注意回声的结构。" echo." 允许您在必要时在行首放置空格,并且与 " >" 重定向字符相邻可确保没有尾随空格(当然,除非您想要它们)。

于 2009-02-15T12:18:21.040 回答
5

以下也将起作用:

echo "my line" > newFile.txt
type newfile.txt myOriginalFile.txt > myOriginalFile.txt

在第一行中,您将我的行写入 newfile.txt。在第二行中,您将替换 myOriginalFile.txt 中的文本,方法是用 newfile.txt 和 myOriginalFile.txt 中的文本覆盖它,创建一个包含两者的新 myOriginalFile.txt。

于 2012-11-30T18:11:39.213 回答
2

如果可以对行的第一部分进行排序,例如日期/时间,则使用 SORT /R 命令将最近的条目放在文件的顶部。下面将以“YYYY-MM-DD HH:DD:SS AM/PM”的形式在每行的开头放置一个日期/时间戳:

echo %DATE:~-4%-%DATE:~7,2%-%DATE:~4,2% %TIME% "my text line" >> myOriginalFile.txt
sort /R myOriginalFile.txt /O myOriginalFile.txt

但是,随着文件变得非常大,这种方法(以及上面的方法)变得很慢。仅在需要时才考虑排序,而不是对每个条目进行排序 - 或使用另一种脚本/编程语言

于 2016-12-29T00:45:08.650 回答
2

通过 PowerShell;

@("NEW Line 1","NEW Line 2") + (Get-Content "C:\Data\TestFile.txt") | Set-Content "C:\data\TestFile.txt"
于 2019-05-03T01:20:15.530 回答
2

如果您想处理更大的文件,则接受的解决方案会变得非常慢。然后使用带有“+”的副本更快

echo "my line" > newFile.txt
copy newFile.txt+myOriginalFile.txt combinedFile.txt
move /Y combinedFile.txt myOriginalFile.txt
del newFile.txt
于 2019-07-15T09:42:47.960 回答