Usuário com melhor resposta
Script para deletar arquivos e pastas antigos

Pergunta
-
Olá Pessoal,
Já fiz uma busca grande por aqui e não encontrei nada específico para minha dúvida. Sou totalmente leigo no assunto, quero aprender sobre isso, porém hoje preciso de uma ajuda pontual.
Tenho um servidor que faz backup diariamente, inclusive é o servidor do Sharepoint. Ele faz backups com a seguinte estrutura de pasta:
C:\backup\spbr0001
C:\backup\spbr0002
e gera um arquivo .xml de informações para caso seja necessário restaurar um backup:
c:\backup\spbrtoc.xml
Tem algum script para deletar as pastas, subpastas e arquivos destas pastas, modificadas com mais de 15 dias da data atual?
Os scripts que encontrei só deletavam arquivos dentro das pastas e subpastas e não as subpastas em si.
Se for em .bat é mais fácil pois entendo mais. Agora se for em .vbs daí eu tenho que entender melhor um pouco.
Se puderem contribuir, agradeço.
Obrigado!
Respostas
-
Guilherme,
Tente este em PowerShell
#configura script $Pasta="c:\Backup" $n = 15 #Arquivos com mais de "n" dias serão apagados $Arquivo_Excessao="C:\Backup\spbrtoc.xml" #inicio do script ============== # Seleciona Arquivos $Arquivos_Deletar = gci $Pasta -r | Where { (-not $_.PsIsContainer) -and ($_.LastWriteTime -lt (date).addDays(-$n) -and ($_.FullName -ne $Arquivo_Excessao) ) } # Apaga if (!($Arquivos_Deletar -eq $null)){$Arquivos_Deletar | Remove-Item -Force} # Seleciona pastas vazias $Pasta_Vazias = Get-ChildItem $Pasta -Recurse | Where {($_.PsIsContainer)} if ($Pasta_Vazias -ne $null){ foreach($PV in $Pasta_Vazias) { $subitems = Get-ChildItem -Recurse -Path $PV.FullName if($subitems -eq $null) { "Remove item: " + $PV.FullName Remove-Item $PV.FullName } $subitems = $null } }
Fábio de Paula Junior
- Marcado como Resposta Guilherme Vital sexta-feira, 18 de maio de 2012 11:24
Todas as Respostas
-
Guilherme,
Teste um dos scripts abaixo, se não funcionar informe qual script vc testou, suas alterações e qual foi o comportamento (ex: não apagou pasta ou não apagou arquivo algum)
Script para deletar arquivos antigos?
Script para deletar arquivos antigos
Fábio de Paula Junior
- Sugerido como Resposta Fábio JrModerator quarta-feira, 9 de maio de 2012 19:23
- Marcado como Resposta Wagner dos Santos VasconcellosModerator quinta-feira, 10 de maio de 2012 11:35
- Não Marcado como Resposta Guilherme Vital sexta-feira, 11 de maio de 2012 18:35
-
Fabio.. obrigado por ajudar, porem nao consegui ainda o que queria..
O primeiro deletou tudo.. inclusive a pasta "pai" e os arquivos novos dentro dela
O segundo deletou somente os arquivos.. e não as subpastas dentro dessa pasta "pai"
Preciso assim:
\Pasta Pai - Não deletar
\Pasta Pai\Subpasta - Deletar tudo o que tiver dentro, inclusive a subpasta se esta foi criada a mais de 15 dias.
\Past Pai\arquivo.xml - Não deletar
Se puderem ajudar, agradeço.
Obrigado.
-
Guilherme,
Tente este em PowerShell
#configura script $Pasta="c:\Backup" $n = 15 #Arquivos com mais de "n" dias serão apagados $Arquivo_Excessao="C:\Backup\spbrtoc.xml" #inicio do script ============== # Seleciona Arquivos $Arquivos_Deletar = gci $Pasta -r | Where { (-not $_.PsIsContainer) -and ($_.LastWriteTime -lt (date).addDays(-$n) -and ($_.FullName -ne $Arquivo_Excessao) ) } # Apaga if (!($Arquivos_Deletar -eq $null)){$Arquivos_Deletar | Remove-Item -Force} # Seleciona pastas vazias $Pasta_Vazias = Get-ChildItem $Pasta -Recurse | Where {($_.PsIsContainer)} if ($Pasta_Vazias -ne $null){ foreach($PV in $Pasta_Vazias) { $subitems = Get-ChildItem -Recurse -Path $PV.FullName if($subitems -eq $null) { "Remove item: " + $PV.FullName Remove-Item $PV.FullName } $subitems = $null } }
Fábio de Paula Junior
- Marcado como Resposta Guilherme Vital sexta-feira, 18 de maio de 2012 11:24
-
-
Boa tarde,
Então amigos, ele não deletou as subpastas, somente os arquivos dentro delas... A pasta do backup de hoje não foi removida...
Acredito que ele não delete as subpastas, pois quando vc deleta os arquivos ele altera a data de modificação de subpastas para a data atual. Mesmo enviando comando pra deletar pastas vazias... Achei estranho.
Se puderem ajudar, agradeço!
- Editado Guilherme Vital sexta-feira, 18 de maio de 2012 11:18
-