2010-06-09 17:13:59 +0000 2010-06-09 17:13:59 +0000
79
79

avoir uniquement les dossiers de retour de Powershell get-childitem

J'aimerais utiliser get-childitem de manière récursive, mais seulement lui faire renvoyer des fichiers et non des répertoires. La meilleure solution que j'ai ne semble pas naturelle :

gci . *.* -rec | where { $_.GetType().Name -eq "FileInfo" }

Réponses (4)

109
109
109
2013-01-24 21:16:24 +0000

Dans Powershell 3.0, c'est plus simple,

gci -Directory #List only directories
gci -File #List only files

C'est encore plus court,

gci -ad # alias for -Directory
gci -af # alias for -File
78
78
78
2010-06-09 18:06:03 +0000

Essayez ceci :

gci . *.* -rec | where { ! $_.PSIsContainer }
3
3
3
2014-05-19 17:52:55 +0000

Dans PowerShell 3.0, vous pouvez également utiliser le nouveau paramètre -Attributes (avec les opérateurs logiques)

Get-ChildItem -Recurse -Attributes !Directory+!System

Golfed

dir -r -Attributes !D
-5
-5
-5
2015-05-07 11:27:01 +0000

Dans powerhell 2.0, la solution la meilleure et la plus simple que j'ai trouvée est d'inclure tous les fichiers avec une extension :

get-childitem -Recurse -include *.*

les dossiers n'ont pas d'extension donc ils sont exclus, attention aux fichiers sans extension.