Neste artigo demonstro como remover arquivos antigos no Windows Server baseados numa certa quantidade de dias.
O primeiro exemplo que demonstrarei é como deletar todos os arquivos de uma pasta diariamente.
1. Para isso abriremos um bloco de notas e escreveremos:
"forfiles /p caminhodosarquivos /c "cmd /c del @path /q & rd @path /s /q"
No meu exemplo ficou assim:
Com isso, quero dizer que meu script irá apagar todos os arquivos da minha pasta Arquivos. Após digitado os comandos salve no formato .bat.
Para conhecer mais sobre o comando forfiles, clique nessa documentação: https://technet.microsoft.com/pt-br/library/cc753551(v=ws.10).aspx
2. Agora iremos testar o script. Antes de executar o script, iremos colocar alguns arquivos dentro da pasta “c:\Arquivos” e executar o script para verificar se os arquivos foram removidos. Abaixo preenchemos a pasta com alguns arquivos:
3. Executando o script:
Verifique acima que todos os arquivos inserido na pasta c:\arquivos foram apagados.
Agora como iremos agendar este script para deletar os arquivos diariamente? Para isso iremos usar o agendador de tarefas.
4. Clique em Iniciar e digite agendador de tarefas. Com ele aberto, clique em: Criar Tarefa Básica
5. Agora iremos inserir o nome e descrição da tarefa. Após inseridas as informações, clique em Avançar.
6. Na próxima tela iremos escolher o período em que a tarefa será executada. Para nosso caso iremos escolher diariamente.
7. Agora iremos escolher a data que irá se iniciar a tarefa. Para o meu exemplo, iremos digitar a data do mesmo dia que a tarefa está sendo criada e a hora 23:06. Com isso estou dizendo que a tarefa será executada diariamente (definido na aba anterior) às 23:06, repetindo a cada 24 horas. Após definido, iremos clicar em Avançar.
8. Na próxima tela iremos informar qual ação a tarefa dispará quando executada. No nosso exemplo, vamos marcar a opção “Iniciar um programa”. Este programa em que colocaremos será o script feito anteriormente. Após marcada a opção, clique em Avançar.
9. Iremos agora clicar em “Procurar” e colocaremos o caminho onde está o script. No exemplo abaixo ficou no desktop do usuário administrador.
10. Clique em Concluir.
A tarefa será criada, veja abaixo em tarefas ativas.
11. Agora iremos clicar na tarefa para alterar algumas configurações da mesma. Com as configurações abertas, marque a opção Executar estando o usuário conectado ou não. Com isso queremos dizer que a tarefa será executada mesmo que o usuário administrador não esteja conectado.
Agora iremos na aba configurações e iremos marcar a opção se ocorrer falha na tarefa, reiniciar a cada 1 minuto. Depois de marcadas as configurações, clicaremos em Ok.
Aparecerá uma tela pedindo as credencias do usuário para salvar as configurações. Digitaremos a senha e clicamos em OK.
Tarefa criada. Resumindo ela: será executada diariamente às 23:06, começando na data 27/07/2016 e sendo executada independente do usuário administrador estar conectado. Caso ocorra alguma falha, será reiniciada a cada 1 minuto. A tarefa tem como objetivo apagar todos os arquivos dentro da pasta colocada do caminho do script.
O nosso segundo exemplo que demonstraremos é como deletar todos os arquivos de uma pasta baseado a um número de dias. Para isso basta somente inserir o parâmetro /d – quantidade de dias no final do script. Veja abaixo:
Acima colocamos o parâmetro /d -1. Isso quer dizer que os arquivos que estão há mais de um dia na pasta C:\Arquivos serão apagados.
Caso quiséssemos que diariamente ele apagasse todos os arquivos da pasta que estão há mais de um dia, poderíamos usar o agendador de tarefas como mencionado acima 🙂
1 Comentários
Boa noite Diego, show de bola o script, funcionou perfeito, mas tenho um problema, tenho vários usuários que se conectam em uma VM, neste bat precisaria ele aponta para um determinada pasta, saberia me dizer um comando que poderia usar para o bat passar em todas as pastas “downloads” do c:\users\…”
Obrigado.