topfolder
というプロジェクトフォルダーがあり、特定のパターンに一致するすべてのサブフォルダー内のすべてのファイルを検索したい。フォルダーの名前のどこかにfoo
が含まれている場合、その中にあるすべてのファイルを一覧表示します。
私は次のようなことを試しました:
gci .\topfolder -rec -filter *foo*
しかし、2つの問題があります。
foo
を含むファイルのみがリストされます(foo-likeフォルダーにanyファイルが欲しい)。それから私はこれを試しました:
gci .\topfolder\*foo* -include *.*
しかし、それはまったく機能しません。ワイルドカードはパスの単一のセグメントにのみ一致するため、パターンはtopfolder\foobar
には一致しますが、topfolder\subfolder\foobar
には一致しません。
これまでに見つけた唯一の方法は、次のようにGet-ChildItemを2回使用することでした。
gci .\topfolder -rec -include *foo* | where { $_.psiscontainer } | gci
これは機能しますが、gci
を2回呼び出すのは無駄のようです。-Path
、-Filter
、-Include
などの正しいワイルドカード式が見つからなかったことを願っています。 。
それを行う最良の方法は何ですか?
Includeの代わりにFilterパラメーターを使用します。
gci .\topfolder -rec -filter *foo* | where { $_.psiscontainer } | gci