バッチファイルでパイプから読み取ることができるかどうか疑問に思っていました。私が書く場合:
echo Test
当然のことですが、Test
. それはすばらしい。しかし、出力をパイプして別のコマンドから読み取りたい場合はどうすればよいでしょうか?
echo Test | echo ???
以前と同じ結果を得る方法はありますが、パイプを介していますか? ありがとう!
編集:私が本当に求めているのはこれです。
ファイルのリストがあり、このリストをfilter.txt
. だから私は使用する必要がありますfindstr /g:filter.txt
。
しかし、一致するリストファイルに対して何かをする必要があり、findstr
ファイルごとに1行を返すため、一致を1行ずつ読み取る必要があります。
これが私がやった方法です:
dir /b | findstr /g:filter.txt | for /F "delims=" %a in ('more') do del "%a"
解決:
私がやりたかったことは、パイプから読み取るのではなく、バッチ ファイル内の別のコマンドの出力を読み取ることだったようです。
1行の読み取りを行うには、次を使用できます。
echo Test | ( set /p line= & call echo %%line%%)
または、複数行の入力でも機能するこれを使用できます。
echo Test | for /F "delims=" %a in ('more') do @echo %a
(さらに使用するこのトリックは、状況によっては役立つ場合があります)。しかし、私の特定のケースでは、解決策は次のとおりです。
for /F "delims=" %a in ('echo Test') do @echo %a
みんなありがとう!