>と>>の違いとは?

BASH,bat,バッチ

バッチファイルでよく見かける「>」と「>>」。

この2つの違いについて解説します。「>」と「>>」の違いが分かることで、バッチファイルでの作業が格段に良くなります。

結論から言うと、「>」はコマンド処理結果をファイルを出力する機能。「>>」はコマンド処理結果をもとにファイルへ追記する機能です。よくわからない人は下に詳しく解説していますので、ご安心ください。

この記事が参考になる方

・「>」と「>>」の違いについて知りたい方

・バッチファイルでファイルの出力を知りたい方

・バッチファイルでファイルへ追記する機能を知らいたい方

「>」と「>>」はファイル出力で使うコマンド

バッチファイルでは「>」と「>>」はファイル出力に使用するコマンドです。

使い方は簡単です。コマンド処理後に出力された文字を指定したファイルに出力します。

以下がコマンド処理の例です。

「>」「>>」の使い方

[コマンド処理結果] [文字列] > [ファイル名]

[コマンド処理結果] [文字列] >> [ファイル名]

使い方は同じですが、機能が異なります。初めにも書きましたが、「>」と「>>」の機能は下記のとおりとなっています。

・「>」はコマンド処理結果をファイルに新規出力、上書きする機能。

・「>>」はコマンド処理結果をファイルに新規出力、追記する機能。

それでは詳しく、それぞれの使った事例解説していきます

「>」はファイルを新規出力、上書き

「>」はファイルを上書きするコマンドです。

例として以下のバッチコマンドをコマンドプロンプト上で実行します。今回はできるだけ簡単に解説しますので、「echo」コマンドを使用します。

echo 文字を新規出力するよ > ex1.txt

コマンド処理後、「ex1.txt」ファイルができていて、ファイル内には以下のようになっています。

ファイルに「文字を新規出力するよ」と記載されています。

出力する文字だけ変えて、もう一度同じコマンドを実行します。

echo 文字を消して、上書きするよ > ex1.txt

実行後、ファイル内を確認し文字の内容を見ます。

ファイルに「文字を消して上書きするよ」と上書きさました。

ファイルが上書きされ、一回目の内容「文字を新規出力するよ」が消えました。このように「>」は文字を出力する際、前のメッセージを削除し、上書きを行います。

上の画像のように1回目の文字は消え、上書きされました。

「>>」は既存ファイルに追記する

次は「>>」ですが、このコマンドはファイルに追記する機能です。それでは早速実例で解説します。

echo 文字を作成 >> ex2.txt

「ex2.txt」ファイルの中身は以下のようになります。

「>」の時と同じでファイルが新規作成されました。

echo 文字を追記 >> ex2.txt

結果は以下のとおり。

前の出力の「文字を作成」が消えていません。「文字を追記」が加えられています。前の出力した文字の「文字を作成」が記載されています

上記の画像を見てのとおり、「>>」は前の文字を残し、その下に文字を追記する機能を持っています。一方で「>」はファイルを新たに作り、同じ名前のファイルがあれば上書きするコマンドです。

まとめ

>と>>の違いについて、まとめます。

「>」「>>」の違い

・「>」「>>」はファイルの新規作成ができる

・もし、出力する際、同じ名前のファイル名があれば、「>」はコマンド処理結果をファイルに上書きする機能。

・もし、出力する際、同じ名前のファイル名があれば、「>>」はコマンド処理結果をファイルに追記する機能。

以上のように、「>」は上書き、「>>」は追記の機能であると覚えておくといいでしょう。

また、「>>」を使う前にifコマンドを使って、同じファイルがあれば削除するというコードを組めば、「>>」を使っても上書きのような機能を持たせることもできます。ifコマンドについては別記事で解説しているので、参考にしてみてください。

コメント

タイトルとURLをコピーしました