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

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

Ветеран


Contributor


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

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


forza11,
Код: Выделить весь код
@Echo Off
cls
SetLocal
	Set "@In1=Z:\Papka 1"
	Set "@In2=Z:\Papka 2"
	Set "@In3=Z:\Papka3"

	Set /A Dt1=20180701
	Set /A Dt2=20181231
	Set "Mask=20??????.csv

	Set "Out=Z:\Box_Arc"

	FOR /F "usebackq tokens=1* delims==" %%i IN (`2^>nul Set "@In"`) DO (
		Echo +++ %%j
		FOR /F "usebackq delims=" %%f IN (`2^>nul Dir /B /S /A:-D "%%j\%Mask%"`) DO Call :OutFile "%%f" "%Out%" %Dt1% %Dt2%
	)
EndLocal
Pause
GoTo :Eof

:OutFile
	Set "FDt=%~n1"
	2>nul Set /A FDt=%FDt:~0,8% ||Exit /B 1

	If  %FDt% LSS %3 Exit /B 0 
	If  %FDt% GTR %4 Exit /B 0 
		
	If Not Exist "%~2%~p1" Md "%~2%~p1"
	>nul Xcopy /D /Y /R %1 "%~2%~p1"
rem	>nul Move /Y %1 "%~2%~p1"
Exit /B %ErrorLevel%
Внутренний голос мне шепчет, что Вам надо не скопировать файлы за период, а переместить.
В этом случае удалите строку с Xcopy и уберите Rem перед Move.
Ограничение: Должно быть Dt1 <= Dt2

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


Последний раз редактировалось megaloman, 18-02-2019 в 12:22.

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

Отправлено: 12:14, 18-02-2019 | #2