У меня есть следующие в пакетном файле:пакетный файл удалить все, кроме новейших 10 файлов
:REMOLDFILES
ECHO Removing files older than 14 days. >>%LOGFILE%
cd /d %BKUPDIR%
FOR /f "skip=14 delims=" %%A IN ('DIR /a:-d /b /o:-d /t:c %1*.zip ^2^>nul') DO IF EXIST "%%~fA" ECHO "%%~fA" >>%LOGFILE%
FOR /f "skip=14 delims=" %%A IN ('DIR /a:-d /b /o:-d /t:c %1*.zip ^2^>nul') DO IF EXIST "%%~fA" DEL "%%~fA" >>%LOGFILE%
FOR /f "skip=14 delims=" %%A IN ('DIR /a:-d /b /o:-d /t:c %1*.log ^2^>nul') DO IF EXIST "%%~fA" ECHO "%%~fA" >>%LOGFILE%
FOR /f "skip=14 delims=" %%A IN ('DIR /a:-d /b /o:-d /t:c %1*.log ^2^>nul') DO IF EXIST "%%~fA" DEL "%%~fA" >>%LOGFILE%
IF [%3]==[Y] GOTO SECONDBACKUPDIR
IF [%3]==[y] GOTO SECONDBACKUPDIR
GOTO END
Проблема я столкнулся и в том, что резервная копия была не работает в течение нескольких недель, и в конечном итоге удаление все мои резервные копии, так как им было более 2 недель.
Что мне нужно, чтобы сохранить последние 10 последних резервных копий.
У кого-нибудь есть идея, как я это сделаю? Я не писал это один раз, так как я не знаком с пакетными файлами.
Этот код должен удалить все, кроме самой новой ** 14 ** '* .log' и '* .zip'. Сокращение этого до 10 не поможет. Как определить, была ли выполнена резервная копия? – Magoo
@Magoo - Я тоже это заметил (из-за этого у моего первоначального ответа было 14 дней), но OP специально попросил 10. Я полагаю, у него есть свои причины (может быть, он не работает по выходным?). –
Какая ОС вы используете? Возможно, вы сможете использовать команду 'forfiles', которая легко решает вашу проблему. – SomethingDark