Exclui automaticamente arquivos antigos de uma pasta especificada?

2

Desejo configurar uma tarefa automática que excluirá automaticamente arquivos com mais de X dias de uma pasta específica. Eu prefiro fazê-lo sem precisar instalar nenhum software de terceiros, mas ficarei bem se for um utilitário muito pequeno e simples.

Eu quero que isso me force a manter meus arquivos organizados. Estou configurando meu navegador para download em uma pasta padrão e, depois, com esse script para excluir automaticamente os arquivos com mais de uma semana, serei forçado a mover & organizar arquivos baixados que eu quero manter.

    
por davr 07.04.2010 / 04:58

4 respostas

2

Que tal Belvedere de um dos editores do Lifehacker .

    
por 07.04.2010 / 06:42
1

Isso é muito fácil com o Windows Scripting Host. Um exemplo de script é parecido com isto:

numDays = 7

Set objfso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.GetFile("C:\test.txt")

Sub DeleteOldFile(objFile, numDays)
    dateFile = objFile.DateLastModified
    dateToday = Now()

    If dateFile <= dateToday Then
        daysOld = dateToday - dateFile
        If daysOld > numDays Then
            objFile.Delete
        End If
    Else
        WScript.Echo "Incorrect date stamp in", strFile
    End If

End Sub

Você precisaria escrever seu script e executá-lo como uma tarefa agendada. Talvez trinta minutos depois de você fazer logon nas manhãs de sexta-feira para ter uma última chance de obter os arquivos que deseja manter movidos. A fonte completa para este exemplo.

    
por 07.04.2010 / 05:10
1

Eu mesmo codifiquei uma solução para isso algum tempo antes de encontrar DelOld . É uma ferramenta muito pequena que faz exatamente o que você quer, e está disponível como um arquivo .jar, executável Java empacotado, executável do Visual Basic (requer MSVBVM60.DLL) e, claro, como código-fonte.

Basta fornecer 2 argumentos da linha de comando - o caminho da pasta e o número de dias antes de um arquivo ser excluído. Ele também pode ser executado por meio de um script em lote por meio do Agendador de Tarefas.

exemplo:

DelOld.exe "C:\Downloads" 30

Isso excluirá todos os arquivos com mais de 30 dias em C:\Downloads .

    
por 07.04.2010 / 05:17
1

Existe um comando do windows chamado forfiles. Eu acho que foi no kit de recursos do Windows 2000. Encontrei um link para ele no site da petri: link Tem muito que você pode fazer com isso, incluindo a remoção de arquivos individuais com base em quantos anos eles são ou diretórios inteiros.

    
por 07.04.2010 / 08:08