Usando o Robocopy para rotação de arquivos

4

Estou procurando uma maneira de usar o robocopy para girar arquivos de log. Atualmente, tenho um arquivo em lote usando o robocopy para copiar arquivos e registrar os resultados em um local de pasta especificado. O que eu gostaria de fazer é manter 7 dias e no dia 8 cair um dia. Isso é possível ou devo criar outro arquivo de lote para fazer isso e chamá-lo do arquivo de lote original?

    
por Wduncan 14.07.2010 / 16:51

4 respostas

3

Se você estiver usando um arquivo de lote, ele poderá excluir arquivos mais antigos no diretório de arquivos de log.

Aqui estão duas referências:

ForFiles - deletar arquivos antigos, etc.
Descreve o uso do utilitário forfiles para excluir arquivos antigos.

arquivo em lotes para excluir arquivos mais antigos que um especificado data
É uma questão de stackoverflow que resolve sua questão aqui.

    
por 14.07.2010 / 18:40
1

Você pode usar o seguinte script:

set checklogcmd=robocopy /s /mov /create /minage:30 /r:0 /w:0
echo ### Checking Logfiles...
%checklogcmd% E:\LOGFILES E:\GARBAGE
rd E:\Garbage /s /q
    
por 26.04.2011 / 15:46
1

Que tal sincronizar todos os arquivos com mais de 30 dias com uma pasta vazia? Eu usei isso com o comando purge para excluir com algum sucesso.

Este exemplo apenas apaga todos os itens da pasta de destino. Com um pouco de edição, faria isso com base em uma data.

robocopy.exe "B:\tb1\St-Cloud\EmptyFolder" "B:\St-Cloud\Daily\Fri" /E /PURGE

    
por 06.08.2012 / 17:59
0

Você poderia fazer algo assim. Pouco feio, mas funciona. Nenhuma razão real para usar o robocopy, ao contrário de apenas uma cópia direta. Isso pressupõe que seu arquivo de log esteja em um lugar padrão, é claro.

del logfile.7

robocopy logfile.6 logfile.7

robocopy logfile.5 logfile.6

....

robocopy logfile logfile.1

del logfile

    
por 26.08.2010 / 21:54