Como apagar arquivos com mais de 30 dias com robocopy?

3

Eu tenho duas pastas sincronizadas com o robocopy (src e mirror) e tento não remover arquivos no espelho antes de 30 dias. Eu tentei com /MINAGE opção para dizer "considere todos os arquivos com mais de 30 dias" para que ele exclua apenas arquivos de 30 dias no espelho, mas parece que está agindo apenas nos arquivos disponíveis (não excluídos).

robocopy /MIR /MINAGE:30 /SD:src /DD:mirror

Então, basicamente, se eu criar um novo arquivo, ele será sincronizado corretamente no espelho (por outra tarefa de robocopy que não exclua arquivos); e se o dia depois de apagá-lo, o arquivo também será apagado no espelho ao executar o comando anterior. Para resumir, eu quero excluir os arquivos excluídos na pasta src e mais de 30 dias no espelho.

Estou sentindo falta de algo?

Obrigado.

    
por Julio Guerra 06.06.2011 / 23:15

1 resposta

5

Eu não sei como fazer isso com o robocopy, mas quando eu quis fazer o mesmo que você está fazendo, coloquei esta linha no meu arquivo de lote:

forfiles -p %_BACKUPPATH% -m *.rar -d -3 -c "cmd /c del @path"

Uma dissecação é:

  • forfiles - O programa para filtrar os arquivos
  • -p %_BACKUPPATH% - -p indica "caminho" (o meu é %_BACKUPPATH% mas você pode substituir isso por um caminho "real"), caso contrário ele usa o diretório atual
  • -m *.rar - filtra por filetype .rar , pula esse parâmetro para *.*
  • -d -3 - afeta somente arquivos com mais de 3 dias ( -3 )
  • -c "cmd /c del @path" - qualquer coisa após o -c é o que será executado para cada arquivo encontrado, neste caso, del .
por 06.06.2011 / 23:35