![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] батник, который удаляет файлы ранее определенной даты |
|
CMD/BAT - [решено] батник, который удаляет файлы ранее определенной даты
|
Старожил Сообщения: 186 |
Добрый день. Помогите написать батник - на сетевом диске есть файлы вида VideoSeq-dd.mm.gggg--time.avi нужно, чтобы на сетевом диске оставались файлы максимум с датой недельной давности, а остальные удалялись.
|
|
Отправлено: 13:58, 16-01-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать foma24, в каком формате у Вас «time»? Также приведите примеры имён реальных файлов.
|
Отправлено: 14:26, 16-01-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать формат time чч.мм.сс
примеры: VideoSeq-01.09.2013--10.50.06.avi VideoSeq-01.10.2013--15.50.11.avi VideoSeq-01.10.2013--16.21.02.avi VideoSeq-01.11.2013--11.20.11.avi |
Отправлено: 15:00, 16-01-2013 | #3 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off SetLocal EnableDelayedExpansion :: путь в папке с файлами Set folder=\\server\3 3 :: удаляем старее 7 дней Set old=7 :: формат имен файлов :: VideoSeq-mm.dd.gggg--time.avi :: VideoSeq-12.31.2013--09.22.33.avi :: ВАЖНО! :: Разделители (- и .), их расположение в имени и положение даты в имени должны быть неизменны. :: До первого тире перед датой не должно быть разделителей, а буквы могут быть любые и в любом количесте. For /F "Tokens=1 Delims=." %%i In ('WMIC OS Get LocalDateTime^|Find "."') Do Set tim=%%i Set YYYY=%tim:~0,4%&Set MM=%tim:~4,2%&Set DD=%tim:~6,2% Echo Now %DD% %MM% %YYYY% Call :GetOldDate %old% Echo Old %DD% %MM% %YYYY% :: после проверки слово Echo удалить For /F "tokens=* delims=" %%i In ('dir /S /A:-D /B "%folder%\*.avi" 2^>Nul') Do ( For /F "tokens=2,3,4 delims=-." %%a In ("%%~nxi") Do If %YYYY%%MM%%DD% GTR %%c%%a%%b Echo Del /F /Q "%%i" ) Pause Exit :GetOldDate Set MM=1%MM%&Set DD=1%DD% Set /A MM-=100, DD-=100 Set /A DD-=%1 If %DD% GTR 0 GoTo formatMM_DD Set /A MM=MM+11-((MM+10)/12)*12 If %MM%==12 Set /A YYYY-=1 For /F "Tokens=%MM%" %%i In ("31 28 31 30 31 30 31 31 30 31 30 31") Do Set X=%%i If %MM%==2 ( Set /A B1=YYYY%%4, B2=YYYY%%100, B3=YYYY%%400 If !B1!==0 If Not !B2!==0 Set /A X+=1 If !B3!==0 Set /A X+=1 ) Set /A DD=DD+X-((DD+X-1)/X)*X :formatMM_DD Set MM=0%MM%&Set DD=0%DD% Set MM=%MM:~-2%&Set DD=%DD:~-2% GoTo :EOF |
Последний раз редактировалось gora, 18-01-2013 в 17:29. Причина: изменеия формата даты "заказчиком" :) Отправлено: 15:35, 18-01-2013 | #4 |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать Прошу прощения, ошибся формат даты не dd.mm.gggg а mm.dd.gggg Что нужно поменять в батнике ?
|
|
Отправлено: 16:08, 18-01-2013 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата foma24:
|
|
Отправлено: 16:37, 18-01-2013 | #6 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата foma24:
|
|
Отправлено: 17:31, 18-01-2013 | #7 |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать все работает, огромное спасибо
|
Отправлено: 09:50, 21-01-2013 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Доступ - [решено] Запрет на открытие архива до определенной даты | Vlademort | Хочу все знать | 6 | 19-10-2012 07:08 | |
Работа программы до определенной даты | malev | AutoIt | 29 | 11-12-2010 19:22 | |
CMD/BAT - батник который считает файлы | LeonanVasia | Скриптовые языки администрирования Windows | 1 | 28-09-2009 05:55 | |
VBS/WSH/JS - [решено] Удаление файлов созданных ранее текущей даты на неделю | KillHunter | Скриптовые языки администрирования Windows | 5 | 06-03-2009 12:23 | |
Прочие БД - Interbase 7,удаление всех записей до определенной даты | dima-sh | Программирование и базы данных | 1 | 27-02-2009 01:27 |
|