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

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

Старожил


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

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


Есть маленькая сложность - если Вы желаете отмерить ИМЕННО 10 ДНЕЙ - Вам придется столкнуться с расчетом календаря, эта тема здесь несколько раз поднималась и если честно, мне ни одно решение этой задачи не показалось "красивым", но да это "имхо". Если упростить Вашу задачу и сохранять просто 10 последних архивов, а не за последние 10 дней (в случае, если бэкап по какой-либо причине не прошел, то архивных копий за последние 10 дней может оказаться значительно меньше, а то и вообще не оказаться...), то такие вопросы здесь тоже поднимались и решение очень просто:
Код: Выделить весь код
@echo off
SetLocal EnableExtensions

set BackUp=MyDisk:\MyBackUp
set Num=10

pushd %BackUp%
for /f "tokens=* delims=" %%D in ('dir /ad /b /o-d') do call :Proceed "%%D"
popd
exit

:Proceed
if not %Num%==0 set /a Num-=1&exit /b
echo %date% %time%: Erase %1>>%~dpn0.log
rd /s /q %1 2>nul >nul
exit /b
* сортировка каталогов не по названию даты, а именно по дате выбрана потому, что неизвестен формат, в котором записана дата каталогов: чаще всего каталоги называют в виде "DD.MM.YYYY", т.к. это более простой способ, хотя для наглядности гораздо удобнее создавать каталоги в виде "YYYY-MM-DD" - хотя такое имя еще надо получить... (например так: %date:~6,4%-%date:~3,2%-%date:~0,2%)

-------
Как сказало Дерево Дровосеку: "я - пень".

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:16, 06-08-2010 | #3