Windowsのコマンドプロンプトを使いこなすためには、リダイレクト(入出力の転送)を理解することが重要です。リダイレクトを活用すると、コマンドの実行結果をファイルに保存したり、エラーを別のファイルに記録したりすることができます。この記事では、Windowsのコマンドプロンプトで使えるリダイレクトの基本から応用までを解説します。初心者にも分かりやすく、具体的なコマンド例を交えながら解説していきますので、ぜひ参考にしてください。
リダイレクト(Redirection)とは、コマンドの標準出力(stdout)や標準エラー(stderr)を別の場所に送る機能のことです。通常、コマンドの結果は画面に表示されますが、リダイレクトを使うことでファイルや別のコマンドに送ることができます。
コマンドの実行結果をファイルに保存するには、>
や >>
を使います。
dir > filelist.txt
このコマンドは、dir
の実行結果(ファイル一覧)を filelist.txt
に保存します。
>
:新しいファイルとして出力(既存のファイルがあれば上書き)>>
:既存のファイルに追記echo Hello World! > message.txt
echo 追加のメッセージ >> message.txt
エラーメッセージを別のファイルに保存する場合は、2>
を使います。
dir /invalid_option 2> error.log
このコマンドは、dir
コマンドのエラーを error.log
に保存します。
2>
:エラーメッセージの出力(上書き)2>>
:エラーメッセージを追記標準出力と標準エラーを同時にファイルへ保存したい場合は、2>&1
を使います。
dir /invalid_option > output.log 2>&1
このコマンドは、通常の出力もエラーも output.log
に記録します。
標準出力やエラーを画面に表示せずに捨てるには NUL
にリダイレクトします。
dir > NUL
dir /invalid_option 2> NUL
これは Linux
の /dev/null
に相当する機能です。
リダイレクトとは異なりますが、関連する技術としてパイプ(|
)を活用すると、あるコマンドの出力を別のコマンドの入力として利用できます。
dir | find "test"
このコマンドは、dir
の出力結果から test
を含む行だけを抽出します。
標準出力と標準エラーを分けて保存する場合は、以下のように記述します。
dir > output.txt 2> error.txt
これにより、通常の出力は output.txt
に、エラーメッセージは error.txt
に保存されます。
<
を使うと、ファイルの内容をコマンドの入力として利用できます。
sort < input.txt > sorted.txt
このコマンドは、input.txt
の内容を並び替えて sorted.txt
に保存します。
>
を使うと既存のファイルが上書きされるため、内容を保持したい場合は >>
を使うこと。>
や &
などの特殊文字を含むコマンドを使用する場合は、^
でエスケープする。echo This is a test ^> output.txt
Windowsのコマンドプロンプトでリダイレクトを使うことで、出力の制御やエラーハンドリングが可能になります。基本的な >
や >>
から 2>&1
や NUL
へのリダイレクトまで、多様な用途で活用できます。特にバッチファイルを作成する際には必須の技術なので、ぜひマスターしましょう。