標準入力の入力元をファイルへ変更する

コマンドプロンプトで利用者からの入力が行われる場合、標準入力と呼ばれるデバイスを通して行われます。デフォルトでは標準入力の入力先はキーボードに設定されているので、キーボードからの入力が行われますが、リダイレクトを使って標準入力の入力元をファイルへ変更することができます。ここではコマンドプロンプトの環境で標準入力の入力元をファイルへ変更する解説します。

(Last modified: )

コマンドへの入力元をファイルに変更する

コマンドを実行した時に何らかの入力待ちとなる場合、デフォルトではキーボードから入力が行われます。例えば SORT コマンドを引数無しで実行すると、標準入力の入力元であるキーボードからの入力待ちとなります。

sort

コマンドへの入力元をファイルに変更する(1)

いくつかの単語を入力していき、最後に [Ctrl]+[z] キーを押したあとで [Enter] キーを押すと入力が終了となります。入力された単語が並び替えられて、その結果が画面に表示されます。

コマンドへの入力元をファイルに変更する(2)

コマンドへの入力元をファイルに変更する(3)

このようにデフォルトでは入力待ちとなった場合の入力元であれ標準入力はキーボードに設定されていますが、大量のテキストを入力する必要がある場合にはあらかじめ作成したおいたファイルに入力する内容を書き込んでおき、ファイルの内容を読み込んで入力できると便利です。このような時にリダイレクトを使うと便利です。リダイレクトは標準入力の入力元をキーボードからファイルなど任意のデバイスへ変更することができます。

リダイレクトを使って標準入力の入力元をファイルへ変更する書式は次の通りです。

コマンド 0< ファイル名

「0<」の右側が標準入力に対して入力したものを、「0<」の左側のデバイスに対して入力するように指定しています。なお「0」は標準入力であるSTDINハンドルを表しており、省略した場合は「0」が指定されたものと見なされますので単に次のように記述することができます。

コマンド < ファイル名

例えば SORT コマンドに対して data.txt のファイルの内容を入力として読み込む場合には次のように入力します。

sort < data.txt

-- --

では実際に試してみます。次のようなテキストファイル data.txt を用意しました。

コマンドへの入力元をファイルに変更する(4)

リダイレクトを使って SORT コマンドへの入力をファイル data.txt に変更します。

sort < data.txt

コマンドへの入力元をファイルに変更する(5)

コマンドを実行するとファイルから読み込まれたテキストが SORT コマンドによって並べ替えが行われ、結果が標準出力の出力先である画面へ表示されました。

コマンドへの入力元をファイルに変更する(6)

このようにリダイレクトを利用することで、標準入力の入力元をファイルに変更することができます。

-- --

コマンドプロンプトで標準入力の入力元をファイルへ変更する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。