Em vez de se preocupar com a idade dos arquivos, primeiro exclua backups antigos até restarem apenas 7 backups diários e, em seguida, se preocupe em excluir o arquivo mais antigo no diretório antes de fazer cada novo backup.
Excluir o arquivo mais antigo em um diretório é muito fácil de ser feito em um script em lote:
SET BACKUPDIR=C:\PATH\TO\BACKUPS
FOR /F %%i IN ('DIR /B /O-D %BACKUPDIR%') DO SET OLDEST=%%i
DEL %BACKUPDIR%\%OLDEST%
O único truque real é o comando DIR /B /O-D
, que lista os nomes dos arquivos simples classificados por data, o último mais antigo. Usamos o loop FOR
para capturar cada nome de arquivo na variável OLDEST
, para quando o loop terminar %OLDEST%
será expandido para o nome do arquivo mais antigo.