Dica rápida…
A alguns dias dias atrás a equipe de desenvolvimento com a qual estava trabalhando decidiu persistir o Viewstate do ASP.NET no HD do servidor.
Após implantar as configurações, rotinas e afins, ficou a dúvida se as rotinas de exclusão dos viewstates antigos estava funcionando corretamente.
Um desenvolvedor deu a ideia de criar um .exe que excluísse os arquivos do dia anterior. Logo pensei: que mania de desenvolvedor de achar que o mundo pode ser resolvido com um .exe. (Falo isso com toda a autoridade de ser um desenvolvedor também!)
Então eu intervi, dizendo que apenas persistissem, e eu agendaria uma tarefa no servidor Windows para apagar os viewstates do dia anterior.
Mas… #comofaz?
Como estou trabalhando bastante com Poweshell ultimamente, pensei que não seria difícil desenvolver um script assim.
Após pesquisar um pouco descobri o comando "forfiles" do prompt do Windows mesmo. Essa belezinha lista arquivos, podendo aplicar alguns filtros. O filtro para os dias é o parametro "D", onde nesse caso, defini –1, veja:
#Maravawonderfull, listei os arquivos, mas e agora, como deletá-los? Já pensou que agonia, colocá-los em variáveis de script basic/bat!?
#Esgurmita!
Puxei um help do comando e loco descobri que havia como passar um comando para aplicar a cada item listado.
Com mais alguns parâmetros consegui gerar um .bat e agendar no Windows a rotina para executá-lo diariamente:
forfiles /P "C:\Users\Spoky\AppData\Local\Temp" /S /M *.txt /D -1 /C "cmd /c del @file"
Onde:
- P: Diretório da da listagem.
- S: Busca recursiva pelos diretórios a dentro.
- M: Aplica a máscara *.txt.
- D: Data da modificação.
- C: Aplica algum comando para cada resultado da listagem.
Então #FicaDica
2 comentários:
Cara, tive uma ideia pra resolver esse problema, que tal criar um .exe que executa de hora em hora?
godness ><
Postar um comentário