|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление файлов по маске |
|
CMD/BAT - [решено] Удаление файлов по маске
|
Новый участник Сообщения: 3 |
Здравствуйте!
Помогите сделать батник для удаления файлов по дате в названии файла: Нужно удалить все, кроме первого числа, 15 и последних трех дней месяца. Список файлов: backup_2013_06_01_063005_7754111.bak backup_2013_07_01_063005_6924425.bak backup_2013_08_01_200017_9697327.bak backup_2013_08_15_200009_0656699.bak backup_2013_09_01_200006_7489049.bak backup_2013_10_01_200008_4867891.bak backup_2013_10_12_200010_1011075.bak backup_2013_10_13_200006_3820117.bak backup_2013_10_14_200009_4088399.bak backup_2013_10_15_200013_7679947.bak backup_2013_10_16_200012_4026963.bak backup_2013_10_17_200006_4841417.bak backup_2013_10_18_200012_4547759.bak backup_2013_10_19_200006_4802467.bak backup_2013_10_20_200006_3705647.bak Вот что получилось у меня ![]() |
|
Отправлено: 09:36, 23-10-2013 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Условия изменились:
Нужно удалить все, кроме первого числа, 15 и последних трех дней. |
Отправлено: 08:41, 28-10-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 70
|
Профиль | Отправить PM | Цитировать Цитата vat_:
for /F "skip=3" %%f in ('dir /o:-n /b backup_????_??_??_??????_???????.bak') do ( for /F "tokens=4 delims=_" %%s in ("%%f") do ( if not %%s==01 if not %%s==15 del %%f ) ) |
|
Отправлено: 19:45, 29-10-2013 | #3 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Рабочий вариант:
@Echo off Set src=C:\dir\dir1\ For /R "%src%" %%i in (*_201?_??_01_*,*_201?_??_15_*) do attrib -a %%i attrib -a %0 SetLocal EnableDelayedExpansion Call :FromNow -3 for %%i in (*.bak) do ( set $t=%%~ti& set $d=!$t:~6,4!!$t:~3,2!!$t:~,2! if !$d! LSS %yyyymmdd% DEL /a:a /q /F "%%i" ) Exit /B :FromNow SetLocal Set yyyy=%DATE:~-4%& set /a mm=100%DATE:~3,2%%%100& set /a dd=100%DATE:~,2%%%100 Set /A JD=%~1+dd-32075+1461*(yyyy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yyyy+4900+(mm-14)/12)/100)/4 Set /A L=JD+68569,N=4*L/146097,L=L-(146097*N+3)/4,I=4000*(L+1)/1461001 Set /A L=L-1461*I/4+31,J=80*L/2447,K=L-2447*J/80,L=J/11 Set /A J=J+2-12*L,I=100*(N-49)+I+L Set /A yyyy=I,mm=100+J,dd=100+K EndLocal& Set yyyymmdd=%yyyy%%mm:~-2%%dd:~-2% Exit /B |
Отправлено: 06:46, 30-10-2013 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Удаление файлов по маске | IlyaBarkov | Скриптовые языки администрирования Windows | 6 | 15-10-2013 05:03 | |
VBS/WSH/JS - [решено] удаление старых файлов по маске | support23 | Скриптовые языки администрирования Windows | 1 | 03-06-2013 08:41 | |
CMD/BAT - [решено] Копирование и удаление файлов по маске | ul9 | Скриптовые языки администрирования Windows | 10 | 25-03-2013 10:09 | |
CMD/BAT - [решено] удаление файлов по маске имени | hlpain | Скриптовые языки администрирования Windows | 4 | 02-09-2011 16:11 | |
Delphi - Перемещение и удаление файлов по маске. | Putin-mode | Программирование и базы данных | 1 | 21-06-2010 12:16 |
|