![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Копирование файлов в папку по smb за предыдущий день |
|
CMD/BAT - [решено] Копирование файлов в папку по smb за предыдущий день
|
Новый участник Сообщения: 4 |
Добрый день.
Имеется следующее: "Сервер А", на котором собираются лог-файлы в 23 раздельных каталога с градацией по дням(маска названий файлов yyyyddmm.log) и "Сервер Б", куда необходимо перемещать данные файлы, так же с делением на 23 каталога (доступ в каталоги расшарен посредством smb). Задача такова: необходимо перемещать с "Сервера А" на "Сервер Б" лог файлы по такому принципу - 11.09.2017 переместить файлы за 10.09.2017 в каждый каталог. Как вариант, можно для каждого каталога сделать отдельный bat'ник, чтобы не городить всё это в одном файле. Надеюсь на вашу помощь ![]() |
|
Отправлено: 12:00, 11-09-2017 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать уточню, так надо?
Именно 11.09.2017 (конкретная дата) или сегодня, переместить по следующей схеме: papka1 in file1 10.09.2017 (будет удален) file2 10.09.2017 (будет удален) file1 09.09.2017 file2 09.09.2017 file3 10.08.2017 file1 10.08.2017 papka1 out file1 10.09.2017 file2 10.09.2017 ... papka23 in file1 10.09.2017 (будет удален) file2 10.09.2017 (будет удален) file1 09.09.2017 file2 09.09.2017 file3 10.08.2017 file1 10.08.2017 papka23 out file1 10.09.2017 file2 10.09.2017 |
Отправлено: 13:23, 11-09-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Извиняюсь, в первом сообщении неточно описал ситуацию:
1. с "Сервера А" нужно копировать файлы на "Сервер Б", а не удалять их 2. необходимо копировать файлы за предыдущий день (поэтому для примера и взял даты текущего и пред идущего дня) |
Отправлено: 13:47, 11-09-2017 | #3 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать shadowjkee,
Цитата shadowjkee:
Копирует все файлы по указанной маске, но при этом: 1. Не копируется файл с именем сегодняшнего дня. 2. Не копируются файлы, уже имеющиеся на "Сервере Б". При ежедневном копировании в норме будут копироваться только файлы вчерашнего дня. Предполагается, что дата в системе отображается в виде дд.мм.гггг Для каждой папки вызовите в батнике процедуру :Copir @Echo Off Set "Maska=20??????.log" Set "ToDayFile=%Date:~6,4%%Date:~3,2%%Date:~0,2%.log" Call :Copir "Z:\Box_In\папка 1" "Z:\Box_Out\папка 1" Call :Copir "Z:\Box_In\папка 2" "Z:\Box_Out\папка 2" GoTo :Eof :Copir For %%f IN ("%~1\%Maska%") DO ( If Not "%%~nxf"=="%ToDayFile%" If Not Exist "%~2\%%~nxf" ( Copy "%%f" "%~2\" >nul ) ) GoTo :Eof |
|
------- Последний раз редактировалось megaloman, 11-09-2017 в 15:39. Отправлено: 15:33, 11-09-2017 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Спасибо, скрипт работает. Правда есть одно уточнение: на "Сервере Б" эти файлы не сохраняются, а сразу перехватываются обработчиком и удаляются из каталогов. как в таком случае будет проходить проверка на "2. Не копируются файлы, уже имеющиеся на "Сервере Б"."?
|
|
Отправлено: 06:42, 12-09-2017 | #5 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Цитата shadowjkee:
Вот вариант, который скопирует файл предыдущего рабочего дня. Если это было вчера - значит, вчерашний. Анализ даты - на основе имени файла формата ггггммдд.log. @Echo Off Set "Maska=20??????.log" Set "ToDayFile=%Date:~6,4%%Date:~3,2%%Date:~0,2%.log" Call :Copir "Z:\Box_In\папка 1" "Z:\Box_Out\папка 1" Call :Copir "Z:\Box_In\папка 2" "Z:\Box_Out\папка 2" GoTo :Eof :Copir For /F "usebackq delims=" %%f IN (`Dir "%~1\%Maska%" /B /A:-D /O:-N 2^>nul`) DO ( If /I Not "%%~nxf"=="%ToDayFile%" ( Copy "%~1\%%f" "%~2\" >nul GoTo :Eof ) ) GoTo :Eof Цитата shadowjkee:
|
||
------- Отправлено: 12:33, 12-09-2017 | #6 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата shadowjkee:
|
|
------- Отправлено: 12:41, 12-09-2017 | #7 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать megaloman, ой. действительно. перепутал формат имени лог-файлов. верный формат - yyyymmdd.log . Видимо глаза совсем замылились
![]() |
Отправлено: 13:19, 12-09-2017 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] Копирование файлов в новую папку | lakdi | Скриптовые языки администрирования Windows | 1 | 26-01-2016 19:33 | |
CMD/BAT - [решено] Поиск фалов по содержимому и копирование найденных файлов в папку | Randow | Скриптовые языки администрирования Windows | 6 | 05-05-2015 22:31 | |
CMD/BAT - Копирование файлов по маске за текущую дату или пропуская ранее скопированные файлы | jastreb83 | Скриптовые языки администрирования Windows | 3 | 19-08-2014 13:36 | |
CMD/BAT - [решено] Копирование файлов по маске за вчерашний день | dvassilyev | Скриптовые языки администрирования Windows | 8 | 19-10-2011 19:36 | |
По smb видно ограниченное количество файлов. | Igor_I | Общий по FreeBSD | 12 | 27-11-2005 18:08 |
|