Me gustaría usar get-childitem de forma recursiva, pero solo hacer que devuelva archivos, no directorios. La mejor solución que tengo no parece natural:
gci . *.* -rec | where { $_.GetType().Name -eq "FileInfo" }
Me gustaría usar get-childitem de forma recursiva, pero solo hacer que devuelva archivos, no directorios. La mejor solución que tengo no parece natural:
gci . *.* -rec | where { $_.GetType().Name -eq "FileInfo" }
Respuestas:
En Powershell 3.0, es más simple,
gci -Directory #List only directories
gci -File #List only files
Esto es aún más corto
gci -ad # alias for -Directory
gci -af # alias for -File
En PowerShell 3.0 también puede usar el -Attributes
parámetro recién agregado
(junto con operadores lógicos)
Get-ChildItem -Recurse -Attributes !Directory+!System
Golfed
dir -r -Attributes !D
En powershell 2.0, la solución mejor y más simple que se me ocurrió es incluir todos los archivos con una extensión:
get-childitem -Recurse -include *.*
las carpetas no tienen una extensión, por lo que están excluidas, tenga cuidado con ninguna extensión llamada archivos.