2012-03-17 15 views
1

最近questionからパイプ反復処理は、私何度も考えるために使用されるが、それはエレガントな解決策がある場合は、まだ分からない問題が含まれていますCMDは:STDIN、別のコマンド

と仮定し、私は、フォームのコマンドを持っていますファイル名またはディレクトリのリスト:dir /B /AD。次に、コマンドの結果を各ファイル名で何かを行うイテレータにパイプしたいと思います。

どうすればいいですか?代わりに、配管の

は、1は確かにforのバージョンバッククォートを使用することができます

for /F "usebackq" %F in (`dir /B /AD`) do @echo %F 

をしかし、私は、ファイル名のソースをハードコーディングないように、標準入力からデータを得ることにここに興味を持っています。

答えて

1

私は解決策を自分で発見したことが起こる:

dir /B /AD | for /F "usebackq" %F in (`findstr "."`) do @echo %F 

それはバッククォート式で直接フィルタリングすることができますので、これは、私が思ったよりも優れています。たとえば、いくつかの特定のファイル名(.svnと_lib)を除外するには、次のように書くことができます。

dir /AD /B | for /F "usebackq" %F in (`findstr /V "\.svn _lib"`) do @echo %F 
関連する問題