コマンドライン(Windows)で別のテキストファイルの先頭にテキストを追加する最も簡単な方法は何ですか?
echo "my line" > newFile.txt
type myOriginalFile.txt >> newFile.txt
type newFile.txt > myOriginalFile.txt
未テスト。ダブル>>は「追加」を意味します
テーマの別のバリエーション。
(echo New Line 1) >file.txt.new
type file.txt >>file.txt.new
move /y file.txt.new file.txt
投稿された他の回答に対する利点:
次のシーケンスは、行「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.
"を使用すると、必要に応じて行の先頭にスペースを入れ、" >
"リダイレクション文字は、末尾のスペースがないことを保証します(もちろん、必要な場合を除きます)。
以下も機能します:
echo "my line" > newFile.txt
type newfile.txt myOriginalFile.txt > myOriginalFile.txt
最初の行では、私の行をnewfile.txtに書き込みます。 2行目では、myOriginalFile.txtのテキストをnewfile.txtとmyOriginalFile.txtのテキストで上書きして置き換え、両方を含む新しいmyOriginalFile.txtを作成しています。
日付/時刻など、行の最初の部分をソートできる場合は、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
ただし、ファイルが非常に大きくなると、このメソッド(および上記のメソッド)は遅くなります。各エントリではなく、必要な場合にのみ並べ替えを検討するか、別のスクリプト/プログラミング言語を使用してください
PowerShell経由;
@("NEW Line 1","NEW Line 2") + (Get-Content "C:\Data\TestFile.txt") | Set-Content "C:\data\TestFile.txt"
大きなファイルを処理する場合、受け入れられるソリューションはかなり遅くなります。次に、「+」を付けてコピーを使用する方が高速です
echo "my line" > newFile.txt
copy newFile.txt+myOriginalFile.txt combinedFile.txt
move /Y combinedFile.txt myOriginalFile.txt
del newFile.txt