Chciałbym rekurencyjnie korzystać z get-childitem, ale zwracaj tylko pliki, a nie katalogi. Najlepsze rozwiązanie, jakie mam, nie wydaje się naturalne:
gci . *.* -rec | where { $_.GetType().Name -eq "FileInfo" }
Chciałbym rekurencyjnie korzystać z get-childitem, ale zwracaj tylko pliki, a nie katalogi. Najlepsze rozwiązanie, jakie mam, nie wydaje się naturalne:
gci . *.* -rec | where { $_.GetType().Name -eq "FileInfo" }
Odpowiedzi:
W Powershell 3.0 jest to prostsze,
gci -Directory #List only directories
gci -File #List only files
To jest jeszcze krótsze,
gci -ad # alias for -Directory
gci -af # alias for -File
W PowerShell 3.0 możesz także użyć nowo dodanego -Attributes
parametru
(wraz z operatorami logicznymi)
Get-ChildItem -Recurse -Attributes !Directory+!System
Grał w golfa
dir -r -Attributes !D
W PowerShell 2.0 najlepszym i najprostszym rozwiązaniem, jakie wymyśliłem, jest dołączenie wszystkich plików z rozszerzeniem:
get-childitem -Recurse -include *.*
foldery nie mają rozszerzenia, więc są wykluczone, uważaj na pliki o nazwach rozszerzeń.