У меня есть папка проекта с именем topfolder, и я хочу найти все файлы во всех подпапках, которые соответствуют определенному шаблону, например. когда папка содержит foo в любом месте своего имени, я хочу перечислить все файлы внутри нее.
Я пробовал что-то вроде:
gci .\topfolder -rec -filter *foo*
но он имеет две проблемы:
- Будут перечислены только файлы, содержащие
foo(я хочу, чтобы любой файл был в foo-подобной папке). - Каталоги, соответствующие этому фильтру, также будут частью набора результатов.
Затем я попробовал это:
gci .\topfolder\*foo* -include *.*
но это не работает вообще - видимые подстановочные знаки соответствуют только одному сегменту пути, так что шаблон будет соответствовать topfolder\foobar, но не topfolder\subfolder\foobar.
Единственный способ, который я нашел до сих пор, - дважды использовать Get-ChildItem, например:
gci .\topfolder -rec -include *foo* | where { $_.psiscontainer } | gci
Это работает, но кажется, что тратить на вызов gci дважды, и я надеюсь, что просто не нашел правильного выражения для чего-то вроде -Path, -Filter или -Include.
Каков наилучший способ сделать это?