4

Я ищу способ использовать robocopy для поворота файлов журнала. В настоящее время у меня есть пакетный файл, использующий robocopy для копирования файлов и регистрации результатов в указанной папке. То, что я хотел бы сделать, это сохранить 7 дней, а на 8-й день оставить один. Это возможно, или я должен создать другой пакетный файл, чтобы сделать это и вызвать его из исходного пакетного файла?

4 ответа4

3

Если вы используете пакетный файл, он может удалить старые файлы в каталоге log-files.

Вот две ссылки:

ForFiles - удалить старые файлы и т.д.
Описывает использование утилиты forfiles для удаления старых файлов.

пакетный файл для удаления файлов старше указанной даты
Это вопрос stackoverflow, который решает ваш вопрос здесь.

1

Как насчет синхронизации всех файлов старше 30 дней с пустой папкой? Я использовал это с командой очистки, чтобы удалить с некоторым успехом.

В этом примере просто удалите все элементы из целевой папки. С небольшим редактированием, это будет сделано на основе даты.

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

1

Вы можете использовать следующий скрипт:

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
0

Вы могли бы сделать что-то вроде этого. Немного некрасиво, но это работает. Нет реальной причины использовать robocopy, в отличие от простой копии. Это предполагает, что ваш лог-файл находится в стандартном месте, конечно.

del logfile.7

robocopy logfile.6 logfile.7

robocopy logfile.5 logfile.6

....

robocopy logfile logfile.1

del logfile

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .