「リダイレクト」とは,「方向切り換え」という意味で,コマンドを実行する際のデータの入力元や,実行結果の出力先を切り換える機能です。
MS-DOSでは キーボードから入力を行い,ディスプレイに出力する というのが標準の設定ですが,リダイレクトによりこの設定が変えられます。
この機能により,コマンドで得た結果をプリンタに出力したり,ファイルとして保存することが可能になります。
リダイレクトには,以下に示す機能があります。
<> > ・・・出力先を切り換える。
>> ・・・ファイルにコマンドの出力結果を付け加える。
<例1>ディレクトリ情報をプリンタに印刷する。
A:\> dir > prn
<例2>FILE.TXT というファイルを作成して ディレクトリ情報を格納する。
A:\> dir > file.txt
<例3>FILE.TXT にルートディレクトリのディレクトリ情報を付け加える。
A:\> dir \ >> file.txt
なお,リダイレクトは MS-DOSのコマンドだけでなく,我々の作ったプログラムを実行させる場合も使えます。
例えば,C言語での scanf()や Fortranでの READ文のように入力を含むプログラムを実行する際,通常は,キーボードからデータを入力します。一方,このようなデータを別のファイルに用意しておき,入力元をそのファイルにリダイレクトして,ファイル中のデータを読み込ませることが簡単にできます。
以下に,我々の作ったプログラムを実行させる際のデータのリダイレクト方法を例示します。
前提条件:以下の(1)~(4)を前提にします。
(1) ソースプログラムの内容とファイル名
#include <stdio.h>
main(){
int i, j;
scanf("%d %d", &i, &j);
printf("i=%d j=%d i+j=%d\n", i, j, i+j);
}
・・・ A:\samp.c
(2) A:\samp.cを コンパイル,リンクして得られた実行形式プログラムのファイル名
・・・・・ A:\samp.exe
(3) データファイルの内容とファイル名
12 34
・・・ A:\samp.dat
(4) カレントディレクトリ ・・・・ A:\
<例1> データの入力元を A:\samp.dat にリダイレクトする場合:
A:\>samp <samp.dat
i=12 j=34 i+j=46
A:\>
・・・入力データは A:\samp.dat 中のを使うので実行結果のみ表示される。
<例2> データの入力元を A:\samp.dat にリダイレクトし,さらに 出力先を D:\kekka.dat にリダイレクトする場合:
A:\>samp <samp.dat > d:\kekka.dat
A:\>
・・・結果は D:\kekka.dat に出力されたので, 画面には表示されない。
D:\kekka.dat の内容は,次のように TYPEコマンドで見られます。
A:\>type d:\kekka.dat
i=12 j=34 i+j=46
A:\>
MS-DOSでは キーボードから入力を行い,ディスプレイに出力する というのが標準の設定ですが,リダイレクトによりこの設定が変えられます。
この機能により,コマンドで得た結果をプリンタに出力したり,ファイルとして保存することが可能になります。
リダイレクトには,以下に示す機能があります。
<> > ・・・出力先を切り換える。
>> ・・・ファイルにコマンドの出力結果を付け加える。
<例1>ディレクトリ情報をプリンタに印刷する。
A:\> dir > prn
<例2>FILE.TXT というファイルを作成して ディレクトリ情報を格納する。
A:\> dir > file.txt
<例3>FILE.TXT にルートディレクトリのディレクトリ情報を付け加える。
A:\> dir \ >> file.txt
なお,リダイレクトは MS-DOSのコマンドだけでなく,我々の作ったプログラムを実行させる場合も使えます。
例えば,C言語での scanf()や Fortranでの READ文のように入力を含むプログラムを実行する際,通常は,キーボードからデータを入力します。一方,このようなデータを別のファイルに用意しておき,入力元をそのファイルにリダイレクトして,ファイル中のデータを読み込ませることが簡単にできます。
以下に,我々の作ったプログラムを実行させる際のデータのリダイレクト方法を例示します。
前提条件:以下の(1)~(4)を前提にします。
(1) ソースプログラムの内容とファイル名
#include <stdio.h>
main(){
int i, j;
scanf("%d %d", &i, &j);
printf("i=%d j=%d i+j=%d\n", i, j, i+j);
}
・・・ A:\samp.c
(2) A:\samp.cを コンパイル,リンクして得られた実行形式プログラムのファイル名
・・・・・ A:\samp.exe
(3) データファイルの内容とファイル名
12 34
・・・ A:\samp.dat
(4) カレントディレクトリ ・・・・ A:\
<例1> データの入力元を A:\samp.dat にリダイレクトする場合:
A:\>samp <samp.dat
i=12 j=34 i+j=46
A:\>
・・・入力データは A:\samp.dat 中のを使うので実行結果のみ表示される。
<例2> データの入力元を A:\samp.dat にリダイレクトし,さらに 出力先を D:\kekka.dat にリダイレクトする場合:
A:\>samp <samp.dat > d:\kekka.dat
A:\>
・・・結果は D:\kekka.dat に出力されたので, 画面には表示されない。
D:\kekka.dat の内容は,次のように TYPEコマンドで見られます。
A:\>type d:\kekka.dat
i=12 j=34 i+j=46
A:\>