Имя: Пароль:
IT
Админ
Удаление файла
0 Злобная Печенька
 
29.01.14
12:42
Есть автоматическое архивирование бекапов, имя которых формируется по маске *_дата.gz. Есть задача - автоматически удалять бекапы, которым больше года. Батник написала, но он удаляет по дате создания файла. Как бы заставить батник проверять имя файла и по нему удалять? Самой в голову уже ничего не приходит((((
Код, который у меня
@echo off
forfiles /P "E:\aaa\bbb\" /M b*.gz.* /D -365 /C "cmd /c del /q @PATH"
1 Ёпрст
 
гуру
29.01.14
12:50
а сами бекапы кто создает ?
2 Злобная Печенька
 
29.01.14
12:51
(1) такой же батник. Это не 1С)))
3 КонецЦикла
 
29.01.14
12:52
маска не катит?
4 КонецЦикла
 
29.01.14
12:53
имя разве уникальное у каждого файла (не считая даты)?
5 Злобная Печенька
 
29.01.14
12:55
(4) Уникальность как раз по дате определяется, которая зашивается  в имя
6 КонецЦикла
 
29.01.14
12:56
Имя* - вот так если... ?
7 Злобная Печенька
 
29.01.14
12:56
Мне надо, чтобы он проверял в имени дату и если файл больше года назад создан, то удалял его.
Буду курить set DAT=%date:~-4%%date:~3,2%%date:~0,2%
8 Злобная Печенька
 
29.01.14
14:08
Со скриптом более-менее разобралась. Вопрос- как в %date:~-4% указать не текущий год, а предыдущий (-1)?
9 Злобная Печенька
 
29.01.14
14:51
Для любопытствующих - вопрос решился таким образом
set /a del_dat= %date:~-4% -1
set del_dat=%del_dat%%date:~3,2%%date:~0,2%
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан