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

Powershell get-childitem nur Dateien zurückgeben lassen

Ich möchte get-childitem rekursiv verwenden, aber nur Dateien und keine Verzeichnisse zurückgeben. Die beste Lösung, die ich habe, scheint einfach nicht natürlich:

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

Antworten (4)

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

In Powershell 3.0 ist es einfacher,

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

Das ist noch kürzer,

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

Versuchen Sie dies:

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

In PowerShell 3.0 können Sie auch den neu hinzugefügten -Attributes-Parameter (zusammen mit den logischen Operatoren)

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

Golfed

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

In powershell 2.0 ist die beste und einfachste Lösung, die ich gefunden habe, alle Dateien mit einer Erweiterung einzuschließen:

get-childitem -Recurse -include *.*

& Ordner haben keine Erweiterung, also werden sie ausgeschlossen, Vorsicht vor Dateien ohne Erweiterung.