Eu gostaria de usar o get-childitem recursivamente, mas ele apenas retorna arquivos, não diretórios. A melhor solução que tenho não parece natural:
gci . *.* -rec | where { $_.GetType().Name -eq "FileInfo" }
Eu gostaria de usar o get-childitem recursivamente, mas ele apenas retorna arquivos, não diretórios. A melhor solução que tenho não parece natural:
gci . *.* -rec | where { $_.GetType().Name -eq "FileInfo" }
Respostas:
No Powershell 3.0, é mais simples,
gci -Directory #List only directories
gci -File #List only files
Isso é ainda mais curto,
gci -ad # alias for -Directory
gci -af # alias for -File
No PowerShell 3.0, você também pode usar o -Attributes
parâmetro recém-adicionado
(junto com operadores lógicos)
Get-ChildItem -Recurse -Attributes !Directory+!System
Golfe
dir -r -Attributes !D
No powershell 2.0, a melhor e mais simples solução que encontrei é incluir todos os arquivos com uma extensão:
get-childitem -Recurse -include *.*
As pastas não possuem uma extensão, por isso são excluídas. Cuidado com nenhuma extensão chamada arquivos.