kondrat42
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Есть папка с файлами (архивы .rar) в имени которых присутствует дата строго в начале и конце в виде ММДД где ММ-месяц ДД-день типа: ... MMДДXXXXXXX.rar ... XXXXXXXXXММДД.rar ... год создания файлов - текущий, длина имени до 13? знаков. Нужно удалить все файлы старее текущей даты на N дней т.е. если сегодня ММДД - 0820 и нужно удалить файлы старее 32 дней, вычисляем ММДД - 0719 и удаляем все файлы в имени которых есть 0719 и все что меньше ... 0719XXXXXX.rar 0718XXXXXXXX.rar .... 0622XXXXXXX.rar .... XXXXXXXXX0719.rar XXXXXXXXXXX0718.rar ... XXXXXXXXX0511.rar ... как вычислить ММДД я нашел а вот как удалить помогите. Код: @echo off chcp 1251 call :FromNow -32 REM echo 35 дня назад была дата %ddmmyyyy% echo 32 дня назад была дата %mmdd% EXIT :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 REM EndLocal& Set ddmmyyyy=%dd:~-2%.%mm:~-2%.%yyyy% EndLocal& Set mmdd=%mm:~-2%%dd:~-2% Exit /B |
|