Qual comando você usa para encontrar diretórios vazios no Windows?
Algumas pastas podem conter pastas ocultas como .svn
ou .settings
, mas ainda devem ser tratadas como pastas vazias.
windows
powershell
Joshua
fonte
fonte
Respostas:
A maneira mais fácil de pensar é com um pequeno script do PowerShell . Se você estiver executando o Windows 7, já deve instalá-lo; caso contrário, visite o site Microsoft.com para fazer o download e instalá-lo. O link fornece uma descrição detalhada, mas o resumo da operação está incluído aqui para sua conveniência.
Abra o PowerShell e digite o seguinte:
Altere C: \ Scripts para o que você deseja pesquisar, você pode até defini-lo como C: \ se desejar verificar a unidade inteira.
Ele fornecerá uma saída como esta (observe que estes são os diretórios vazios abaixo de C: \ Scripts.
Se você olhar um pouco para o PowerShell, tenho certeza de que será capaz de descobrir como excluir pastas vazias automaticamente, se quiser (embora eu recomendo, por precaução).
Edit : Como Richard mencionou nos comentários, para um diretório verdadeiramente vazio, use:
fonte
?{$_.GetFileSystemInfos().Count -eq 0}
.A seguir, é a maneira mais fácil de encontrar para conseguir isso com uma única linha de código. Ele lista os diretórios vazios no local atual. Se for necessária recursão, o parâmetro
-Recurse
poderá ser adicionado à chamada paraGet-ChildItem
.Get-ChildItem -Directory | Where-Object { $_.GetFileSystemInfos().Count -eq 0 }
Versão curta com aliases:
dir -Directory | ? {$_.GetFileSystemInfos().Count -eq 0 }
Ou, como uma função parametrizada do PowerShell (eu adicionei isso ao meu perfil de inicialização do PowerShell):
Isso pode ser chamado como qualquer outra função do PowerShell, incluindo a tubulação. Por exemplo, essa chamada excluiria todos os diretórios vazios no diretório temporário do sistema:
Get-EmptyDirectories $env:TMP | del
fonte
Tente isto
A contagem não é 0, não existe, o que significa que o diretório está completamente vazio ou contém outras pastas completamente vazias
fonte
Obrigado, usei isso como base para o meu script. Eu queria excluir pastas vazias, mas tentar
Where-Object {$_.GetFiles().Count -eq 0}
excluir pastas que tivessem subdiretórios que não estavam vazios. Acabei usando um loop DO WHILE para remover uma pasta que não tinha arquivos ou pastas, em seguida, retorne e verifique novamente até chegar ao final da árvore.fonte