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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление файлов по маске

Ответить
Настройки темы
CMD/BAT - [решено] Удаление файлов по маске

Новый участник


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

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


Изменения
Автор: vat_
Дата: 23-10-2013
Здравствуйте!
Помогите сделать батник для удаления файлов по дате в названии файла:
Нужно удалить все, кроме первого числа, 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
________________________________________________________________


Вот что получилось у меня
Код: Выделить весь код
@echo on
Set src=C:\dir\dir1\
For /R "%src%" %%i in (*_01_*,*_15_*,*_29_*,*_30_*,*_31_*) do attrib -a %%i 
attrib -a %0 
del /a:a /q /f *.*
pause

Отправлено: 09:36, 23-10-2013

 

Новый участник


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

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


Условия изменились:
Нужно удалить все, кроме первого числа, 15 и последних трех дней.

Отправлено: 08:41, 28-10-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


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


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

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


Цитата vat_:
Условия изменились:
Нужно удалить все, кроме первого числа, 15 и последних трех дней.
@echo off
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
Благодарности: 0

Профиль | Отправить 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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление файлов по маске

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход