none
Scripts para exclusão de pastas com o nome definido em um txt RRS feed

  • Pergunta

  • Gostaria de criar um script que varresse uma pasta especifica e que exclui-se todas as pastas com o nome já definido em um txt.

    Para clarear melhor, tenho uma pasta onde estão os homedir dos usuários da rede, e quando o mesmo for desligado, eu consiga excluir as pastas homedir desses logins, com base em um txt (Já exportado a partir do AD).

    Detalhe: Esse script terá que checar várias pastas, pois os homedir estão organizados por depto.

    Depto1

    homedir1

    homedir2

    Depto2

    homedir3

    homedir4

    Se puderem me auxiliar, agradeço.

    terça-feira, 22 de julho de 2014 17:23

Respostas

  • Veja se este PowerShell atende

    $Pastas = @("C:\teste\dept1","C:\teste\dept2")
    
    $Excluir = Get-Content "C:\teste\excluir.txt"
    
    foreach($Pasta in $Pastas){
    
        foreach($E in $Excluir){
    
            dir $Pasta -Recurse |
                ? {$_.Name -eq $E -and $_.psiscontainer} |
                % {Remove-Item $_.FullName -recurse}
    
        }
    
    
    }

    Veja que no inicio tem um array com as pastas que serão avaliadas, e dentro do excluir.txt tem o nome das pastas que serão excluídas.


    Fábio de Paula Junior

    • Marcado como Resposta João Poço quarta-feira, 23 de julho de 2014 17:31
    terça-feira, 22 de julho de 2014 20:51
    Moderador

Todas as Respostas

  • Veja se este PowerShell atende

    $Pastas = @("C:\teste\dept1","C:\teste\dept2")
    
    $Excluir = Get-Content "C:\teste\excluir.txt"
    
    foreach($Pasta in $Pastas){
    
        foreach($E in $Excluir){
    
            dir $Pasta -Recurse |
                ? {$_.Name -eq $E -and $_.psiscontainer} |
                % {Remove-Item $_.FullName -recurse}
    
        }
    
    
    }

    Veja que no inicio tem um array com as pastas que serão avaliadas, e dentro do excluir.txt tem o nome das pastas que serão excluídas.


    Fábio de Paula Junior

    • Marcado como Resposta João Poço quarta-feira, 23 de julho de 2014 17:31
    terça-feira, 22 de julho de 2014 20:51
    Moderador
  • Fabio

    Perfeito, script atendeu as minhas expectativas e funcionou corretamente. Estou tentando adicionar um log das pastas que ele excluiu. Tentei adicionar o seguinte caminho $Pasta | out-file "excluir.log", porém ele só grava a ultima pasta que excluiu. Podes me auxiliar?

    Desde já obrigado.

    quarta-feira, 23 de julho de 2014 17:13
  • João,.

    Não testei, mas acho que pode ser isso

     dir $Pasta -Recurse |
                ? {$_.Name -eq $E -and $_.psiscontainer} |
                % {Add-Content -Path "C:\temp\log.txt" -value $_.FullName; Remove-Item $_.FullName -recurse}

    Veja que na linha onde o arquivo é excluído eu adicionei um comando para escrever em um arquivo.


    Fábio de Paula Junior

    quarta-feira, 23 de julho de 2014 18:07
    Moderador
  • João,.

    Não testei, mas acho que pode ser isso

     dir $Pasta -Recurse |
                ? {$_.Name -eq $E -and $_.psiscontainer} |
                % {Add-Content -Path "C:\temp\log.txt" -value $_.FullName; Remove-Item $_.FullName -recurse}

    Veja que na linha onde o arquivo é excluído eu adicionei um comando para escrever em um arquivo.


    Fábio de Paula Junior

    Funcionou perfeitamente. Muito obrigado.
    quinta-feira, 24 de julho de 2014 19:29