J'ai un dossier de projet appelé topfolder
et je veux trouver tous les fichiers dans tous les sous-dossiers qui correspondent à un certain modèle, par exemple lorsque le dossier contient foo
n'importe où dans son nom, je veux lister tous les fichiers qu'il contient.
J'ai essayé quelque chose comme:
gci .\topfolder -rec -filter *foo*
mais il a deux problèmes:
foo
seront répertoriés (je veux tout fichier dans le dossier foo-like).Ensuite, j'ai essayé ceci:
gci .\topfolder\*foo* -include *.*
mais cela ne fonctionne pas du tout - apparemment, les caractères génériques ne correspondent qu'à un seul segment d'un chemin, de sorte que le modèle correspondra à topfolder\foobar
mais non topfolder\subfolder\foobar
.
La seule façon que j'ai trouvée jusqu'à présent était d'utiliser deux fois Get-ChildItem, comme ceci:
gci .\topfolder -rec -include *foo* | where { $_.psiscontainer } | gci
Cela fonctionne, mais il semble inutile d'appeler gci
deux fois et j'espère que je n'ai tout simplement pas trouvé une expression générique correcte pour quelque chose comme -Path
, -Filter
ou -Include
.
Quelle est la meilleure façon de le faire?
J'utiliserais le paramètre Filter au lieu de Include, il effectue beaucoup plus gras
gci .\topfolder -rec -filter *foo* | where { $_.psiscontainer } | gci