web-dev-qa-db-ja.com

コマンドラインで別のテキストファイルの先頭にテキストを追加する最も簡単な方法(Windows)

コマンドライン(Windows)で別のテキストファイルの先頭にテキストを追加する最も簡単な方法は何ですか?

28
dr. evil
echo "my line" > newFile.txt
type myOriginalFile.txt >> newFile.txt
type newFile.txt > myOriginalFile.txt

未テスト。ダブル>>は「追加」を意味します

45
DarkwingDuck

テーマの別のバリエーション。

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

投稿された他の回答に対する利点:

  • 最小ステップ数
  • 一時ファイルが残っていません
  • 括弧は、最初の行の不要な後続スペースを防ぎます
  • 移動コマンドは、「瞬時に」古いバージョンを新しいバージョンに置き換えます
  • 元のファイルは、置き換えられた最後の瞬間まで変更されません
  • 最終コンテンツは一度だけ書き込まれます-ファイルが巨大な場合、潜在的に重要です。
16
dbenham

次のシーケンスは、行「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. "を使用すると、必要に応じて行の先頭にスペースを入れ、" > "リダイレクション文字は、末尾のスペースがないことを保証します(もちろん、必要な場合を除きます)。

8
paxdiablo

以下も機能します:

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

最初の行では、私の行をnewfile.txtに書き込みます。 2行目では、myOriginalFile.txtのテキストをnewfile.txtとmyOriginalFile.txtのテキストで上書きして置き換え、両方を含む新しいmyOriginalFile.txtを作成しています。

5
anonperson

日付/時刻など、行の最初の部分をソートできる場合は、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

ただし、ファイルが非常に大きくなると、このメソッド(および上記のメソッド)は遅くなります。各エントリではなく、必要な場合にのみ並べ替えを検討するか、別のスクリプト/プログラミング言語を使用してください

2
user7351993

PowerShell経由;

@("NEW Line 1","NEW Line 2") + (Get-Content "C:\Data\TestFile.txt") | Set-Content "C:\data\TestFile.txt"
0
Madison Courto

大きなファイルを処理する場合、受け入れられるソリューションはかなり遅くなります。次に、「+」を付けてコピーを使用する方が高速です

echo "my line" > newFile.txt
copy newFile.txt+myOriginalFile.txt combinedFile.txt
move /Y combinedFile.txt myOriginalFile.txt
del newFile.txt
0