Como excluir periodicamente arquivos anteriores a um determinado período no Windows?

Como excluir periodicamente arquivos anteriores a um determinado período no Windows?

Quero fazer um processo agendado no Windows (especificamente no Windows 7) que a cada 3 horas exclua todos os arquivos em todas as pastas com mais de 24 horas (como o achado do Unix -mtime +1). Basicamente, o equivalente do Windows a ter isso configurado no meu cron Unix:

find $TRANSITDIR -mtime +1 -exec rm -rf {} \;

Embora eu pareça ter descoberto que o equivalente do cron do Windows é oAgendador, só não conheço os comandos do Windows para fazer isso.

Alguém tem um script de agendador pronto para uso?

Responder1

Crie um arquivo em lote com o seguinte conteúdo:

REM Remove files older than 1 day
forfiles /p %1 /s /m * /c "cmd /c del @path /q" /d -1

Em seguida, abra o Agendador de Tarefas do Windows. Crie uma tarefa básica para executar um programa e, como argumento, forneça o caminho para a pasta entre aspas.

Explicação dos comandos

REMé um comentário.

forfilesexecutará um comando para cada arquivo. /p %1define em qual caminho os arquivos estão ( %1significa o valor do primeiro argumento da linha de comando passado para o script). /sé recursivo (vai para subpastas). /m *.*é a máscara do nome do arquivo. /c "cmd /c del @path"especificou qual comando executar. /d -1significa arquivos com mais de 1 dia.

Nesse caso, cmd /c del @pat /qhcria uma nova sessão e executa del(excluir arquivo) em @path, o caminho do arquivo para cada arquivo iterado por forfiles. /qé para o modo silencioso, para quenão pede para você confirmar diretórios.

Teste

Substituir delcom echo. Isso imprimirá cada arquivo que teria sido excluído, em vez de realmente excluí-lo.

Responder2

Não é exatamente o que você quer fazer, mas eu diria que vale a pena levar em consideração as limpezas automáticas do ccleaner quando se fala em janelas. Eu o uso para localizar e limpar arquivos tmp para máquinas Windows.

Tem uma CLI limitadahttp://www.piriform.com/docs/ccleaner/advanced-usage/command-line-parameters#Command-line_parameters_for_CCleaner_

Além disso, desde que você seja um cara do Shell e tenha dito que precisa dele para o W7, você pode tentar o PowerShell:

http://www.google.es/search?q=powershell+remove+x+day+older+files

informação relacionada