Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1273
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Цитата 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
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:59, 24-07-2010 | #5