Цитата YuS_2:
либо подождите megaloman, возможно, он что-нибудь придумает на cmd.. »
|
Коллега меня мамонтом обозвал!!!
Код:
@Echo Off
cls
Set "BoxIn=\\fs\obmen"
Set /A Delta=-10
Call :FromDate %Delta% %Date% "YYYYDDMM"
Pushd "%BoxIn%"||(Echo Folder %BoxIn% not found &Pause &Exit /B)
FOR /F "usebackq tokens=1,2,3,5* delims=. " %%i In (`2^>nul Dir /O:-D /T:C^|findstr /R /C:"^..\...\..... ..:.. .*"`) DO (
If %%k%%j%%i LSS %YYYYDDMM% (Echo %%k%%j%%i = "%%m" &Del "%%m")
)
Popd
pause
Exit /B 0
:FromDate
rem Пересчет даты на заданное кол-во дней
rem В первом аргументе +- дни
rem Во втором аргументе дата в формате dd.mm.yyyy
rem В третем аргументе имя переменной в кавычках где получим новую дату в формате yyyymmdd
rem Заимствовано http://forum.oszone.net/thread-186889.html
rem вызов Call :FromNow %DeltaDay% %Date% "yyyymmdd"
rem результат в перемменной %yyyymmdd%
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 "%~3=%yyyy%%mm:~-2%%dd:~-2%"
Exit /B 0
Подразумевается, что формат отображения даты-времени в системе "ДД.ММ.ГГГГ чч:мм"
Проверьте, что у Вас отображается в команде Dir
Для отладки, чтобы скрипт реально не удалял файлы, перед Del можно поставить Echo
&Echo Del "%%m"