top of page

PowerShell: Apagando todas as pastas vazias de um diretório

Foto do escritor: Adauto CostaAdauto Costa
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.


Habilitar Scripts PowerShell

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!

203 visualizações0 comentário

Posts recentes

Ver tudo

Comments


Faça parte da nossa lista de emails

Obrigado!

ad33geo canal whatsapp.png
Dê sua opinião sobre algo do site!

Obrigado! Enviaremos um e-mail em breve informando que seu conteúdo foi publicado!

siga-nos!

  • Facebook
  • Instagram
  • YouTube
bottom of page