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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скопировать файлы за 6 месяцев предыдущего года (2018)

Ответить
Настройки темы
CMD/BAT - [решено] Скопировать файлы за 6 месяцев предыдущего года (2018)

Новый участник


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

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


Добрый день.
Помогите решить проблему, нужно скопировать большой объём текстовых файлов по маске, за 2018 год, но не полностью, а за 6 месяцев 2018 года, начиная с июля по декабрь включительно.
Т.е. есть много папок допустим С:\1 С:\2 С:\3 С:\4 С:\5
В этих папках лежат текстовые файлы .csv по суткам за весь год
Файлы называются по дате например: 20180701.csv 20180702.csv 20180703.csv 20180704.csv 20180705.csv
Нужно скопировать из всех каталогов С:\1 С:\2 С:\3 С:\4 С:\5 все файлы только за 6 месяцев 2018 года начиная с июля до декабрь, т.е. с 20180701.csv по 20181231.csv

Отправлено: 20:57, 17-02-2019

 

Ветеран


Contributor


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

Профиль | Отправить 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


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

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


megaloman,
Спасибо, сейчас попробую
На счёт переместить тоже верно, понадобится.

Отправлено: 17:00, 18-02-2019 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скопировать файлы за 6 месяцев предыдущего года (2018)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Автомобильный видеорегистратор 2018 года Lazer Флейм 0 15-06-2018 18:07
Смартфоны 2018 года получат до 512 Гб сверхбыстрой памяти OSZone News Новости железа 0 10-03-2017 20:30
Статистика и прогноз по рынку телевизоров до 2018 года OSZone News Новости железа 0 26-12-2014 21:30
IDC даёт прогноз по рынку смартфонов до 2018 года OSZone News Новости информационных технологий 1 02-06-2014 21:38
IDC прогнозирует рынку ПК спад до 2018 года OSZone News Новости информационных технологий 0 06-03-2014 11:30




 
Переход