🔄

コマンドプロンプトのリダイレクトとパイプ入門

に公開

コマンドプロンプトのリダイレクトとパイプ入門

コマンドプロンプトを使っていると、「コマンドの結果をファイルに保存したい」「大量の出力から特定の情報だけを取り出したい」と思うことがあります。そんなときに役立つのが「リダイレクト」と「パイプ」です。
この記事では、これらの基本的な使い方と実践例を紹介します。

リダイレクトとは

リダイレクトは、コマンドの出力先や入力元を変更する機能です。
通常、コマンドの結果は画面に表示されますが、リダイレクトを使うとファイルに保存したり、ファイルからデータを読み込んだりできます。

基本的なリダイレクト記号

> ファイル名  # 出力をファイルに保存(上書き)
>> ファイル名 # 出力をファイルに追記
< ファイル名  # ファイルから入力を読み込む

実践例

例1: dirコマンドの結果をファイルに保存

dir > フォルダ一覧.txt

このコマンドを実行すると、通常は画面に表示されるフォルダ一覧が「フォルダ一覧.txt」というファイルに保存されます。

例2: 既存ファイルに情報を追記

echo %DATE% >> 日付ログ.txt
echo %TIME% >> 日付ログ.txt

これで、現在の日付と時刻が「日付ログ.txt」に追記されます。毎回実行するたびに新しい行が追加されるので、簡易的なログファイルとして使えます。

パイプとは

パイプ(| 記号)は、あるコマンドの出力を別のコマンドの入力として渡す機能です。
複数のコマンドを連携させて、より複雑な処理を行うことができます。

基本的な使い方

コマンド1 | コマンド2

実践例

例1: 長いディレクトリ一覧を一画面ずつ表示

dir /s | more

このコマンドは、dir /s(サブフォルダも含めたファイル一覧)の結果をmoreコマンドに渡し、一画面ずつ表示します。スペースキーで次のページに進めます。

例2: 特定のファイルを検索

dir /s /b | findstr "検索したい単語"

このコマンドは、ディレクトリ一覧から「検索したい単語」を含む行だけを抽出して表示します。

リダイレクトとパイプの組み合わせ

リダイレクトとパイプを組み合わせることで、より複雑な処理も可能です。

例: システム情報から特定の情報だけを抽出してファイルに保存

systeminfo | findstr "メモリ" > メモリ情報.txt

このコマンドは、システム情報から「メモリ」という単語を含む行だけを抽出し、「メモリ情報.txt」というファイルに保存します。

エラー出力のリダイレクト

コマンドプロンプトでは、通常の出力とエラー出力を分けて扱うことができます。

コマンド 2> エラーファイル        # エラー出力のみをファイルに保存
コマンド > 出力ファイル 2>&1      # 通常の出力とエラー出力を1つのファイルに保存

例: エラーを含むコマンドの結果を整理

dir C:\ Z:\ > 結果.txt 2> エラー.txt

このコマンドは、CドライブとZドライブ(存在しないかもしれない)の一覧を取得し、正常な結果は「結果.txt」に、エラーメッセージは「エラー.txt」に分けて保存します。

実用的なシナリオ

ネットワーク情報をファイルに保存する

ipconfig /all > ネットワーク設定.txt

システム診断情報を作成する

echo ===システム情報=== > システム診断.txt
systeminfo | findstr "OS" >> システム診断.txt
echo. >> システム診断.txt
echo ===ディスク情報=== >> システム診断.txt
wmic logicaldisk get name,size,freespace >> システム診断.txt

まとめ

リダイレクトとパイプは、コマンドプロンプトを効率的に使うための重要なスキルです。
これらを活用することで次のようなメリットがあります。

  • コマンド結果を後から参照できるようファイルに保存できる
  • 複数のコマンドを連携させて作業を効率化できる
  • 大量の情報から必要な部分だけを抽出できる

ぜひ実際に試してみて、コマンドプロンプトをより便利に使いこなしてください!

Discussion