최신 (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을 요구했다. 나는 그가 이유가 있다고 생각한다. (어쩌면 주말에는 뛰지 않을지도 모른다). –
어떤 OS를 사용하고 있습니까? 'forfiles' 명령을 사용하면 문제를 쉽게 해결할 수 있습니다. – SomethingDark