Batch-script-files-pipes
バッチスクリプト-ファイルパイプ
パイプ演算子(|)は、あるコマンドの出力(デフォルトではSTDOUT)を受け取り、別のコマンドの入力(デフォルトではSTDIN)に送ります。 たとえば、次のコマンドはディレクトリC:\の内容をソートします
この例では、両方のコマンドが同時に開始されますが、dirコマンドの出力を受け取るまでsortコマンドは一時停止します。 sortコマンドは、dirコマンドの出力を入力として使用し、その出力をハンドル1(つまり、STDOUT)に送信します。
次は、pipeコマンドの別の例です。 この例では、ファイルC:\ new.txtの内容がパイプフィルターを介してsortコマンドに送信されます。
コマンドとリダイレクト演算子の組み合わせ
通常、パイプ演算子をリダイレクト演算子とともに使用して、パイプコマンドを操作する際に有用な機能を提供します。
たとえば、以下のコマンドは最初にC:\で定義されたすべてのファイルを取得し、次にpipeコマンドを使用して、拡張子が.txtのすべてのファイルを検索します。 次に、この出力を取得して、ファイルAllText.txtに出力します。
複数のパイプコマンドの使用
同じコマンドで複数のフィルターを使用するには、フィルターをパイプ(|)で区切ります。 たとえば、次のコマンドは、ドライブC上のすべてのディレクトリを検索し、文字列「Log」を含むファイル名を見つけて、一度に1つのコマンドプロンプトウィンドウに表示します-
パイプフィルターの使用方法の例を次に示します。
例
次の例では、tasklistコマンドを使用して実行中のすべてのタスクのリストを送信し、出力をfindコマンドに送信します。 findコマンドは、メモ帳タイプのすべてのプロセスを検索し、コマンドプロンプトに表示します。
出力
次に出力例を示します。
次の例では、tasklistコマンドを使用して実行中のすべてのタスクのリストを送信し、moreコマンドに出力を送信します。 その後、moreコマンドは、実行中のタスクのリストを1ページずつ表示します。
例
出力
次の例では、tasklistコマンドを使用して実行中のすべてのタスクのリストを送信し、出力をfindコマンドに送信します。 findコマンドは、メモ帳タイプのすべてのプロセスを検索し、リダイレクトコマンドを使用してコンテンツをファイルtasklist.txtに送信します。
例
出力
ファイルtasklist.txtを開くと、次のサンプル出力が得られます。