|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - копирование всех фалов за определённый (прошедщий) месяц |
|
|
CMD/BAT - копирование всех фалов за определённый (прошедщий) месяц
|
Новый участник Сообщения: 9 |
Каталог C:\1 в нём хранят .csv файлы за весь год, нужно скопировать все файлы только за сентябрь
файлы такого формата: 20180916.csv, 20180917.csv, 20180918.csv и т.д. |
|
Отправлено: 05:27, 01-10-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать forza11, смотрим только на имя файла? За сентябрь только этого года?
|
Отправлено: 05:46, 01-10-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата forza11:
А так, по описанным условиям: powershell |
|
------- Последний раз редактировалось YuS_2, 01-10-2018 в 09:05. Отправлено: 09:00, 01-10-2018 | #3 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Цитата:
Цитата:
|
||
Отправлено: 11:23, 01-10-2018 | #4 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата forza11:
от же студент пошел нонче находчивый: раскидал задание по всем форумам и сиди жди себе, где вперед ответят... отличный подход! ![]() Цитата forza11:
Самый надежный вариант, это по дате последнего изменения, она сохраняется после переименования или даже копирования файла в другое место. |
|||
------- Отправлено: 11:38, 01-10-2018 | #5 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать forza11, Если только файлы прошлого месяца (месяц берём из имени файла) и если только скопировать, то
@Echo Off % cls Set "BoxIn=Z:\Box_In" Set "BoxOut=Z:\Box_Out" Set "Ext=csv" FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "tNow=%%d" If %tNow:~4,2%==01 (Set /A Month=%tNow:~0,6%-89) Else (Set /A Month=%tNow:~0,6%-1) Xcopy /D "%BoxIn%\%Month%??.%Ext%" "%BoxOut%\%Month%\" pause Exit /B ![]() |
------- Отправлено: 12:17, 01-10-2018 | #6 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
![]() Не сочтите за наглость) Но как можно реализовать тоже самое, только с множеством каталогов, в которых так же нужно выбрать файлы за предыдущий месяц по названию файла?) Т.е. вместо одного каталога с файлами будет 100 каталогов типа: С:\1, С:\2, С:\3 и т.д. |
|
Отправлено: 13:06, 01-10-2018 | #7 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать megaloman,
Цитата megaloman:
![]() И такой же вопрос еще, если возможно как то решить? Теперь вместо одного каталога С:\1, есть много каталогов С:\1, С:\2, С:\3, С:\4 и т.д. из всех них нужно так же скопировать файлы по названию за предыдущий месяц... |
|
Последний раз редактировалось forza11, 01-10-2018 в 16:34. Отправлено: 16:27, 01-10-2018 | #8 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать megaloman,
Цитата megaloman:
2 - файлы должно копироваться в такие же каталоги, только в другое место соответственно, т.е. С:\СС8B552D6666 > R:\СС8B552D6666 (каталоги могу сам создать заранее скриптом) 3 - именно копировать) 4 - архивация не нужна, они уже бэкапятся эти файлы, просто нужно скопировать много файлов из множества каталогов) |
|
Отправлено: 17:08, 01-10-2018 | #9 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать forza11,
@Echo Off cls Set "BoxIn=Z:\Box_In" Set "BoxOut=Z:\Box_Out" Set "Ext=csv" FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "tNow=%%d" If %tNow:~4,2%==01 (Set /A Month=%tNow:~0,6%-89) Else (Set /A Month=%tNow:~0,6%-1) Call :@ СС8B552D6666 Call :@ СС8A552D8888 Call :@ СС8C552D9999 Call :@ СF8B552D7777 pause GoTo :Eof :@ If Exist "%BoxIn%\%1\%Month%??.%Ext%" Xcopy /D "%BoxIn%\%1\%Month%??.%Ext%" "%BoxOut%\%1\%Month%\" >nul GoTo :Eof Или так
@Echo Off cls Set "BoxIn=Z:\Box_In" Set "BoxOut=Z:\Box_Out" Set "Ext=csv" Set Mac=СС8B552D6666 СС8A552D8888 СС8C552D9999 СF8B552D7777 FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "tNow=%%d" If %tNow:~4,2%==01 (Set /A Month=%tNow:~0,6%-89) Else (Set /A Month=%tNow:~0,6%-1) FOR %%i IN (%Mac%) DO Call :@ %%i pause GoTo :Eof :@ If Exist "%BoxIn%\%1\%Month%??.%Ext%" Xcopy /D "%BoxIn%\%1\%Month%??.%Ext%" "%BoxOut%\%1\%Month%\" >nul GoTo :Eof |
------- Последний раз редактировалось megaloman, 01-10-2018 в 17:52. Отправлено: 17:19, 01-10-2018 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Копирование фалов по сети | operlo | Скриптовые языки администрирования Windows | 0 | 10-10-2017 16:19 | |
CMD/BAT - [решено] Копирование измененных фалов+логи | dahiko | Скриптовые языки администрирования Windows | 9 | 23-02-2016 16:45 | |
CMD/BAT - [решено] Поиск фалов по содержимому и копирование найденных файлов в папку | Randow | Скриптовые языки администрирования Windows | 6 | 05-05-2015 22:31 | |
Как задать на всех рабочих станциях домена определённый каталог переменных сред? | Alexir | Microsoft Windows NT/2000/2003 | 5 | 06-04-2007 14:29 | |
Сервер налазил в инете 400 мб за месяц | Delion | Сетевые технологии | 4 | 02-03-2004 10:48 |
|