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 selbstverständlich zu sein:
gci . *.* -rec | where { $_.GetType().Name -eq "FileInfo" }
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 selbstverständlich zu sein:
gci . *.* -rec | where { $_.GetType().Name -eq "FileInfo" }
Antworten:
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
In PowerShell 3.0 können Sie auch den neu hinzugefügten -Attributes
Parameter
(zusammen mit logischen Operatoren) verwenden.
Get-ChildItem -Recurse -Attributes !Directory+!System
Golf gespielt
dir -r -Attributes !D
In Powershell 2.0 bestand die beste und einfachste Lösung darin, alle Dateien mit einer Erweiterung einzuschließen:
get-childitem -Recurse -include *.*
Ordner haben keine Dateierweiterung, daher werden sie ausgeschlossen. Achten Sie auf keine Dateierweiterung mit dem Namen "files".