Como apagar periodicamente arquivos com mais de um certo tempo no Windows?

2

Eu quero fazer um processo agendado no Windows (especificamente, o Windows 7) que a cada 3 horas irá apagar todos os arquivos em todas as pastas com mais de 24 horas (como o -mtime +1 do Unix encontra). Basicamente o equivalente do Windows de ter isto configurado no meu cron Unix:

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

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

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

    
por flpgdt 29.07.2011 / 16:52

2 respostas

1

Crie um arquivo em lotes 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 o 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 de linha de comando passado para o script). /s é recursivo (entra em 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 que não solicite a confirmação dos diretórios .

Teste

Substitua del por echo . Isso imprimirá cada arquivo que teria sido excluído, em vez de excluí-lo.

    
por 06.05.2015 / 15:28
0

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

Tem um link

>

Além disso, desde que você seja um cara da concha e você disse que precisa para o W7, você pode tentar o powershell:

link

    
por 29.07.2011 / 17:21