Ho una cartella di progetto denominata topfolder
e voglio trovare tutti i file in tutte le sottocartelle che corrispondono a un determinato modello, ad es. quando la cartella contiene foo
ovunque nel suo nome, voglio elencare tutti i file al suo interno.Come trovare i file nelle directory con un certo nome usando Get-ChildItem?
ho provato qualcosa di simile:
gci .\topfolder -rec -filter *foo*
ma ha due problemi:
- solo i file in realtà contenente saranno elencati
foo
(voglio qualsiasi file nella cartella foo-like). - Anche le directory che corrispondono a questo filtro faranno parte del set di risultati.
Poi ho provato questo:
gci .\topfolder\*foo* -include *.*
ma che non funziona affatto - a quanto pare caratteri jolly partita solo un singolo segmento di un percorso in modo che modello corrisponderà topfolder\foobar
ma non topfolder\subfolder\foobar
.
L'unico modo che ho trovato finora è stato quello di utilizzare Get-ChildItem per due volte, in questo modo:
gci .\topfolder -rec -include *foo* | where { $_.psiscontainer } | gci
Questo funziona ma sembra uno spreco di chiamare gci
due volte e spero di appena didn' t trovare un'espressione jolly giusta per qualcosa come -Path
, -Filter
o -Include
.
Qual è il modo migliore per farlo?
Come è diverso dal mio ultimo esempio? Non sarà ancora più lento del mio tentativo? – Borek
Spiacente, devo essere stato cieco;) –
Ho appena postato una risposta aggiornata –