PowerShell: Apagando todas as pastas vazias de um diretório
Atenção: Este código pode excluir pastas que você talvez considere importantes.
Para testar o código, crie um ambiente controlado com pastas vazias.
Antes de usar, certifique-se de que não há nenhuma subpasta importante nas pastas que deseja excluir.
Este site não se responsabiliza por quaisquer danos causados pelo uso indevido deste script.
Pastas vazias de um diretório podem sobrecarregar seu computador e dificultar a localização dos arquivos necessários. Felizmente, usando o PowerShell, você pode excluir facilmente pastas vazias do seu sistema, liberando espaço valioso e facilitando a localização dos arquivos necessários.
Neste artigo, orientaremos você nas etapas para localizar e remover diretórios vazios usando o PowerShell. Quer você seja um usuário novato ou experiente, este guia o ajudará a otimizar a estrutura de arquivos do seu computador.
Antes de utilizar o script você precisa habilitar a execução deles no PowerShell. Clique na imagem abaixo para ver como.
Uma vez habilitada a execução de scripts, crie um arquivo com a extensão *.ps1 e cole o código abaixo:
# Função para apagar os diretório vazios
function Apagar-Diretorios {
# Diretório pai
$Path = Get-FolderBrowserDialog
# Encontrar pastas vazias
Get-ChildItem -Path $Path -Force -Recurse -Directory | Where-Object { (Get-ChildItem -Path $_.FullName -Recurse -File -EA SilentlyContinue | Measure-Object).Count -eq 0 } | Select FullName | Format-Table -AutoSize
# Apagar pastas vazias
Get-ChildItem -Path $Path -Force -Recurse -Directory | Where-Object { (Get-ChildItem -Path $_.FullName -Recurse -File -EA SilentlyContinue | Measure-Object).Count -eq 0 } | Remove-Item -Force -Recurse
}
# Função para exibir o diálogo de seleção de pasta
function Get-FolderBrowserDialog {
Add-Type -AssemblyName System.Windows.Forms
$folderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog
$folderBrowser.Description = "Selecione o diretorio pai"
$folderBrowser.RootFolder = "MyComputer"
$folderBrowser.ShowNewFolderButton = $false
if ($folderBrowser.ShowDialog() -eq 'OK') {
return $folderBrowser.SelectedPath
} else {
return $null
}
}
# Chamando a função para selecionar o diretório pai
Apagar-Diretorios
Caso seu código esteja retornando erro, talvez seja por conta da codificação do arquivo. Experimente executar:
powershell -NoProfile -ExecutionPolicy Bypass -Command "& {Set-Content -Path .\seu_codigo.ps1 -Value (Get-Content -Path .\seu_codigo.ps1 -Encoding UTF8) -Encoding UTF8 ; .\seu_codigo.ps1}"
Substitua seu_codigo pelo nome do arquivo. Você deve usar esses comandos para abrir um arquivo .ps1 no PowerShell com codificação UTF-8 no Prompt de Comando porque eles garantem que o arquivo seja interpretado corretamente e evita problemas de caracteres especiais ou acentuados em seu código.
Veja abaixo como usar seu código!
Compartilhe este conteúdo!
Comments