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

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

Ветеран


Contributor


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

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


Sergey.l,
Вот батник. Скопируйте его 3 раза под именами, например, сегодня.bat вчера.bat завтра.bat. Пропишите в зависимости от названия параметр DeltaDay
Код: Выделить весь код
@echo off
cls

Set "BoxArc=Z:\Телеграммы"
Set "BoxOut=Z:\Почта\отправка"

rem Set /A DeltaDay   =0 -сегодня;  =1 -завтра; =-1 -вчера 
Set /A DeltaDay=-1

If "%~1"=="" (
	Echo !!! Не указаны файлы для обработки &Echo:
	Pause
	Exit /B 240	
)
SetLocal EnableDelayedExpansion
Call :StrDate "yyyy" "mm" "dd"

If Not %DeltaDay%==0 Call :FromNow %DeltaDay% %dd%.%mm%.%yyyy% "yyyy" "mm" "dd"

Set "BoxData=%BoxArc%\%yyyy%\%mm%\%dd%"
Md "%BoxData%" 2>nul
Md "%BoxOut%" 2>nul
 
:Begin
	If "%~1"=="" Pause &GoTo :Eof

	Set SCopy=Copy /-Y "%~1" "%BoxOut%\"
	Set SMove=Move /-Y "%~1" "%BoxData%\"
	Echo %SCopy% &%SCopy% &&(Echo %SMove% &%SMove%)

	Shift
GoTo :Begin

:StrDate
	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "@Tdate=%%d"
	Set "%~1=%@Tdate:~0,4%"
	Set "%~2=%@Tdate:~4,2%"
	Set "%~3=%@Tdate:~6,2%"
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
Создание папок (Md) вполне можете оставить и не создавать папки руками. Если папки уже имеются, вреда не будет.

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

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

Отправлено: 13:17, 11-02-2018 | #6