Цитата Banzaika:
мне нужно каждого типа бэкапов хранить всего 5 последних штук, т.е. с сервера-1 5 последних, сервера-2 5 последних и т.д »
|
Значит все остальное удаляем:
Код:
@Echo Off
SetLocal EnableDelayedExpansion
Set Source=C:\Source
Set NumSavedFiles=5
Set Count=1
Echo.>_UniqueNames.log
For /F "Tokens=1* Delims=-" %%A In ('Dir /B "%Source%\*.zip"') Do (
Find "%%B" _UniqueNames.log 1>nul 2>&1||Echo %%B>>_UniqueNames.log&&Call :Func "!Count!"
)
Del /F /Q _UniqueNames.log 1>nul 2>&1
EndLocal
GoTo :EOF
:Func
For /F "Skip=%~1 Tokens=*" %%C In ('Type _UniqueNames.log') Do (
For /F "Skip=%NumSavedFiles% Tokens=*" %%D In ('Dir /B /O-D /TC "%Source%\*%%C"') Do Del /F /Q "%Source%\%%D" 1>nul 2>&1
)
Set /A Count+=1