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

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

Пользователь


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

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


Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion

set minus_days=7
Set papka=D:\1cBackupElena\v82BackupElena

set _dt=!DATE!
 rem set _dt=01.07.2012
set _dt=%_dt:~-10%

set _day=%_dt:~0,2%
set mon=%_dt:~3,2%
set year=%_dt:~6,4%


if %_day% LSS 10 set _day=%_day:~1%
if %mon% LSS 10 set mon=%mon:~1%

set /A _day-=%minus_days%

 rem echo _day=!_day!

if %_day% LSS 0 (
 set /A mon-=1
 if !mon!==0 (
   set mon=12
   set /A year-=1
 )

 if !mon!==2 (
   set /A ost=%year% %% 4
   if !ost!==0 (set /A _day=29+_day) else (set /A _day=28+_day)
   echo ost=!ost!
 ) else (
   set /A _day=31+_day
   for %%m in (4 6 9 11) do if !mon!==%%m set /A _day=_day-1
 )

)

if %_day% LSS 10 set _day=0%_day%
if %mon% LSS 10 set mon=0%mon%

set old=%year%-%mon%-%_day%
echo old=%old%

for /D %%f in (%papka%\*.*) do (
  if not %%f==%0 (
    set dat=_%%~nxf
    set dat=!dat:~7,4!-!dat:~4,2!-!dat:~1,2!
    if !dat! LEQ %old% (
      rd /s /q %%f
    )
  )
)
Похожую задачу я делал в 2012 году, только там надо было удалять устаревшие файлы по дате изменения файла. Так что пришлось только отыскать тот батник и немножко его модифицировать. В принципе, можно ориентироваться не на имя каталога, а на время изменения. Для этого нужно будет заменить строку
Код: Выделить весь код
    set dat=_%%~nxf
на
Код: Выделить весь код
    set dat=_%%~tf
, как было изначально в том моём батнике.

-------
Разумный человек приспосабливается к миру, неразумный пытается приспособить мир к себе. Поэтому прогресс делают люди неразумные. (Дж. Б. Шоу)


Последний раз редактировалось Гуллипут, 06-04-2015 в 21:48. Причина: Дополнение

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

Отправлено: 21:43, 06-04-2015 | #2