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.
forfiles
executará um comando para cada arquivo. /p %1
define em qual caminho os arquivos estão ( %1
significa 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 -1
significa arquivos com mais de 1 dia.
Nesse caso, cmd /c del @pat /qh
cria 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 del
com 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