バッチファイルでコマンドの入力にファイルの内容を渡す2つの方法

バッチファイル

コマンドライン操作やバッチファイルの作成において、コマンドにファイルの内容を直接入力したい場面はよくあると思います。本記事では、ファイルの内容をコマンドの標準入力として渡す方法を2つご紹介します。

方法1:入力リダイレクト(<)を使用

この例では、log.txtの中身をfindstrコマンドに渡し、ファイル内で”error”が含まれる行を検索します。この方法を使うと、大量のデータを含むファイルを簡単に検索できます。

findstr /I error < log.txt

方法2:typeコマンド + パイプ(|)を使用

方法1と同じことを、コマンドの組み合わせでも実現できます。この例では、typeコマンドでlog.txtの内容を標準出力に書き出し、パイプでfindstrコマンドに渡してフィルタリングしています。

type log.txt | findstr /I error

どちらを使用するのが良いか?

好みの問題のような気がします。パフォーマンスとしてはコマンドが1つ少ない分、方法1の方が高い可能性がありますが、私は方法2を好んで使います。理由は、データの流れが常に左から右になるので、直感的で分かりやすいためです。

まとめ

本記事では、バッチファイルでコマンドの入力にファイルの内容を渡す2つの方法を紹介しました。機能はほとんど同じであり、パフォーマンスについても大きな差はないと思われますので、お好みの方法を選択してご使用ください。

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