Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


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

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


Цитата epoddubniy:
надо удалить файлы созданные 2,3,4,5 дней назад »
Увы, задача сводится к определению диапазона дат, а в CMD с этим туго.
Вот громоздкий CMD, который решает задачу. Работает как по Вашему первому, так и по второму условию
Код: Выделить весь код
@Echo Off
	Set "BoxIn=Z:\Box_Arc" 
	Call :Period 04.05.21 30.05.21

	Call :FromDate -5 %Date% "Date1"
	Call :FromDate -2 %Date% "Date2"
	Call :Period %Date1% %Date2%
Exit /B

:Period
	Set "Date1=%1"
	Set "Date2=%2"

	Set "D1=20%Date1:~-2%%Date1:~3,2%%Date1:~0,2%"
	Set "D2=20%Date2:~-2%%Date2:~3,2%%Date2:~0,2%"

	For /f "usebackq delims=" %%f In (`2^>nul Dir /B /A:-D /O:D /S "%BoxIn%\*.*"`) Do (
		Set "DD=%%~tf"
		Call :MyDel "%%f" %D1% %D2% %%DD%%
	)
Exit /B

:MyDel
	Set "DD=%4"
	Set "DD=20%DD:~-2%%DD:~3,2%%DD:~0,2%"
	If %2 LEQ %DD% If %DD% LEQ %3 Del %1
Exit /B

:FromDate

rem Пересчет даты на заданное кол-во дней
rem В первом аргументе +- дни
rem Во втором аргументе дата в формате dd.mm.yyyy
rem В третем аргументе имя переменной в кавычках где получим новую дату в формате dd.mm.yyyy 

rem Заимствовано http://forum.oszone.net/thread-186889.html
rem вызов Call :FromNow %DeltaDay% %Date% "MyDate"
rem результат в перемменной %MyDate%

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=%dd:~-2%.%mm:~-2%.%yyyy%"
GoTo :Eof

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:55, 11-06-2021 | #26