Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   как удалять все файлы из папки по атрибутам (1 месяц) (http://forum.oszone.net/showthread.php?t=200117)

petr_al 21-02-2011 15:58 1618414

как удалять все файлы из папки по атрибутам (1 месяц)
 
Помогите написать bat для удаления бат файла по атрибутам. Например через 1 месяц или 2!!!

amel27 22-02-2011 04:00 1618837

petr_al, что значит "по атрибутам"?.. выражайтесь предметней, список возможных атрибутов файла:
Код:

attrib /?|find """"
для запуска "через месяц" ипользуйте планировщик задач... ;)

petr_al 22-02-2011 15:47 1619241

Я извиняюсь, я не правильно выразился!!! Удаление файлов по происшествию 1 месяца, то есть они лежат месяц, а потом автоматом удаляются!!!!

petr_al 22-02-2011 18:05 1619337

Ну рассчитываю на 30 дней. То есть 30 дней лежит, а потом удаляется!!!!!

megaloman 23-02-2011 19:37 1620204

Здесь эта тема решена
Вот решение, написанное "по мотивам" этой ссылки
Код:

@Echo off

Set Where=H:\Delete
Set DDay=-30

Call :FromNow %DDay% %Date%

FOR %%i IN ("%Where%\*.*") DO Call :DelFileDay "%%i"
GoTo :Eof

:DelFileDay

Set D=%~t1
Set DAteFile=%D:~6,4%%D:~3,2%%D:~0,2%
If %DateFile% LSS %yyyymmdd% Del %1

GoTo :Eof

rem Использовал http://forum.oszone.net/thread-186889.html
:FromNow
 SetLocal
 Set DT=%2
 Set yyyy=%DT:~-4%& set /a mm=100%DT:~3,2%%%100& set /a dd=100%DT:~,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%
GoTo :Eof

H:\Delete - это путь, где лежат Ваши файлы (в любом случае без кавычек и без \ на конце), Вы, естественно, можете написать свой путь и изменить кол-во дней (здесь -30)
Написано в предположении, что формат даты в системе dd.mm.yyyy


Время: 03:19.

Время: 03:19.
© OSzone.net 2001-