リダイレクトでファイルへ出力するときに追加書き込みを行う

標準出力の出力先をファイルへ変更する時、書き込み先のファイルが存在していた場合には既存の内容を上書きして書き込みが行われますが、上書きではなく追加書き込みにすることもできます。ここではコマンドプロンプトの環境でリダイレクトでファイルへ出力するときに追加書き込みを行う方法について解説します。

(Last modified: )

追加書き込みでファイルへ出力する

リダイレクトを使い標準出力の出力先をファイルへ変更する方法については「標準出力をファイルへ出力する」で解説しましたが、出力先のファイルが既に存在していた場合は新しい内容で上書きしていました。これを上書きではなく既存の内容に追加書き込みでファイルへ出力するには次の書式を使用します。

コマンド >> ファイル名

ファイルが存在していない場合はファイルを新規に作成した上で出力を行うのは同じですが、ファイル名が既に存在する場合は既存の内容をそのままで最後に追加する形で出力が行われます。

例えば ECHO コマンドの結果を、既存のファイルに追加する形で出力するには次のように実行します。

echo Hello >> memo.txt

memo.txt が存在しなければ新規にファイルを作成した上で「Hello」と書き込みます。既に memo.txt が存在していた場合はファイルの最後に「Hello」と追加で書き込みます。

-- --

では実際に試してみます。まずは memo.txt ファイルが無い状態で次のように実行します。

echo Good Morning > memo.txt

追加書き込みでファイルへ出力する(1)

新規に memo.txt ファイルが作成され「Good Morning」と書き込まれます。 TYPE コマンドを使って memo.txt ファイルの内容を出力して確認してみると「Good Morning」書き込まれていることが確認できます。

追加書き込みでファイルへ出力する(2)

続いて次のように実行してみます。作成済みのファイル memo.txt に対して「>>」でリダイレクトが行われているので、上書きではなく既存の内容に追加する形で出力が行われます。

echo Hello >> memo.txt

追加書き込みでファイルへ出力する(3)

あらためて TYPE コマンドを使ってファイルの内容を出力して確認してみます。既存の内容に追加する形で書き込まれていることが確認できます。

追加書き込みでファイルへ出力する(4)

なお「>>」ではなく「>」を使って次のように実行した場合、既存のファイルの内容が上書きされます。

echo Bye > memo.txt

追加書き込みでファイルへ出力する(5)

このようにリダイレクトするときに「>」ではなく「>>」を使用することで、上書きではなく既存の内容に追加する形でファイルへ出力することができます。

-- --

リダイレクトを使って標準出力の出力先をファイルに変更する時に、追加書き込みでファイルへ出力する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。