標準出力のファイルへのリアルタイム分岐
pteeとは、「他のコマンドを実行して、その実行中に、そのコマンドの標準出力を、指定したファイルと本来の標準出力との2箇所に、リアルタイムに書き出す」という機能を持つ、DOS汎用のツールです。
すなわち、標準出力をファイルに分岐させるツールの一種であり、この点ではUNIXのteeコマンドと似ています。が、DOS上での便宜のため、UNIX上のteeとはコマンドの書式(使い方)が少々異なります。
まずUNIXのteeについて説明しましょう。これは、標準入力から読んだものを、標準出力と、指定されたファイルとの両方に書き込むツールで、典型的には下記のような使い方をします。
他のコマンド | tee ファイル名
こうすると、「他のコマンド」の出力結果が、画面に出るとともに、並行してファイルにも書き込まれていくわけです。
DOS上に実装されたteeも、UNIX-like tools(配布元: ftp://www.ics.nara-wu.ac.jp/pub/nide/dosutil)のteeをはじめいくつかあります。しかしUNIX上で「他のコマンド | tee ファイル名」とやるのと、DOSで同じ操作をするのとでは違いが出ます。
UNIXでは「他のコマンド」の実行と並行してteeも動き、「他のコマンド」の出力がリアルタイムに画面及びファイルへ流れて来るのに対し、DOSでは「他のコマンド」の実行が全て終わってからやっと、teeによってそのコマンドの出力が画面及びファイルへ流れて来るのです。
この違いは、DOSがシングルタスクのOSであり、DOSのパイプが一時ファイルで実現されているのに対し、UNIXはマルチタスクOSであり、パイプの前後のコマンドは同時並行実行される、という差によるものです。従ってDOSでは、普通の実現法のteeでは、UNIXと同じような使い方は望めないわけです。
が、当然、実行結果のモニタなどに使うには、UNIXでteeを使う時のように、画面とファイルへの並行書き出しができなければ不便です。
そこで、普通のteeとちょっと書式が異なるのは我慢するとして、とにかくUNIX上のteeと同様に、実行中のコマンドの出力を画面とファイルに並行して書き出すことができ、実行結果のモニタなどに便利に使えるツールが、DOSでも作れないかと考え、できたのがこのptee(parallel tee)というわけです。