Я ищу способ использовать robocopy для поворота файлов журнала. В настоящее время у меня есть пакетный файл, использующий robocopy для копирования файлов и регистрации результатов в указанной папке. То, что я хотел бы сделать, это сохранить 7 дней, а на 8-й день оставить один. Это возможно, или я должен создать другой пакетный файл, чтобы сделать это и вызвать его из исходного пакетного файла?
4 ответа
Если вы используете пакетный файл, он может удалить старые файлы в каталоге log-files.
Вот две ссылки:
ForFiles - удалить старые файлы и т.д.
Описывает использование утилиты forfiles для удаления старых файлов.
пакетный файл для удаления файлов старше указанной даты
Это вопрос stackoverflow, который решает ваш вопрос здесь.
Как насчет синхронизации всех файлов старше 30 дней с пустой папкой? Я использовал это с командой очистки, чтобы удалить с некоторым успехом.
В этом примере просто удалите все элементы из целевой папки. С небольшим редактированием, это будет сделано на основе даты.
robocopy.exe "B:\tb1\St-Cloud\EmptyFolder" "B:\St-Cloud\Daily\Fri" /E /PURGE
Вы можете использовать следующий скрипт:
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
Вы могли бы сделать что-то вроде этого. Немного некрасиво, но это работает. Нет реальной причины использовать robocopy, в отличие от простой копии. Это предполагает, что ваш лог-файл находится в стандартном месте, конечно.
del logfile.7
robocopy logfile.6 logfile.7
robocopy logfile.5 logfile.6
....
robocopy logfile logfile.1
del logfile