Назад | Перейти на главную страницу

Как удалить файлы старше 30 дней с помощью robocopy?

У меня есть две папки, синхронизированные с robocopy (src и mirror), и я стараюсь не удалять файлы в зеркале раньше 30 дней. Я пробовал с /MINAGE возможность сказать «рассматривать все файлы старше 30 дней», чтобы он удалял только файлы 30-дневной давности в зеркале, но кажется, что он воздействует только на доступные файлы (не удаляется).

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

В общем, если я создам новый файл, он будет правильно синхронизирован с зеркалом (другой задачей robocopy, которая вообще не удаляет файлы); и если на следующий день после того, как я его удалю, файл будет удален и в зеркале при выполнении предыдущей команды. Подводя итог, я хочу удалить файлы, удаленные в папке src и старше 30 дней в зеркале.

Я что-то упускаю ?

Спасибо.

Я не знаю, как это сделать с помощью robocopy, но когда я хотел сделать то же самое, что и вы, я помещал эту строку в свой командный файл:

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

Рассечение - это:

  • forfiles - Программа для фильтрации файлов
  • -p %_BACKUPPATH% - -p указывает "путь" (мой %_BACKUPPATH% но вы можете заменить его на «настоящий» путь), в противном случае он использует текущий каталог
  • -m *.rar - фильтр по типу файла .rar, пропустите этот параметр для *.*
  • -d -3 - Влияет только на файлы старше 3 дней (-3)
  • -c "cmd /c del @path" - что-нибудь после -c то, что будет выполняться для каждого найденного файла, в этом случае del.