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

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

Ветеран


Contributor


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

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


Sergey.l,
Если не изобретать велосипед, то вот CMD
Код: Выделить весь код
@Echo Off
cls

SetLocal EnableDelayedExpansion

Call :FromNow -1 %Date% "yyyy" "mm" "dd"

Echo %Date%  %DeltaDay%  %yyyy% %mm% %dd%
Echo MD Disk:\Folder\%yyyy%\%mm%\%dd%
pause
GoTo :Eof

:FromNow
rem Пересчет даты на заданное кол-во дней
rem Формат даты dd.mm.yyyy +- дни получим новые yyyymmdd

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

 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%&Set %~4=%mm:~-2%&Set %~5=%dd:~-2%)
GoTo :Eof
ИМХО, наверное это и не нужно. Папки создаются, чтобы туда поместить файлы прошедших дней. Не проще ли брать дату, например, изменения файла, и, по мере надобности, создавать папки. Тогда батник, построенный по такому принципу, можно запускать хоть раз в несколько дней/недель/месяцев/лет, и при этом рассортировать файлы по нужным папкам, а не в папку вчерашнего дня.

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


Последний раз редактировалось megaloman, 08-01-2018 в 14:57.


Отправлено: 14:41, 08-01-2018 | #3