Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 16.05.2018
Сообщений: 3
1

Копирование логов из различных, по дате, папок

16.05.2018, 16:24. Показов 2251. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Столкнулись с задачей:

Есть папки с логами, вида:
c:\etc\logs\2018\05\16\CompanyName1\
c:\etc\logs\2018\05\16\CompanyName2\
c:\etc\logs\2018\05\16\CompanyName3\

папки "2018\05\16" - соответствуют дате, создаются каждый день

необходимо каждый день копировать новые логи CompanyName2 в папки вида:
с:\etc\backup\logs\2018\05\16\CompanyName2
с:\etc\backup\logs\2018\05\17\CompanyName2
с:\etc\backup\logs\2018\05\18\CompanyName2

Помогите осуществить.
Заранее благодарю.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2018, 16:24
Ответы с готовыми решениями:

Копирование с созданием папки назначения с именем, соответствующим дате копирования, и удаление старых папок
Доброго времени суток уважаемые форумчане! Помогите пожалуйста! Необходимо создать BATник, который...

Копирование логов в сетевую шару
Столкнулся я с таким странным (для PowerShell) багом, или даже не знаю, баг или не баг. Данный баг...

Скрипт по поиску папок по дате
Все привет. Сделали мне скрипт по поиску и удалению папок и файлов по заданной дате на сервере, но...

Сортировка по дате начиная с папок
Впервые столкнулся с такой проблемой, случилась после последнего обновления. Вот папка есть с...

4
724 / 323 / 133
Регистрация: 17.03.2014
Сообщений: 811
16.05.2018, 22:43 2
Atomck, так подойдёт?
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off & prompt $G
setlocal EnableExtensions EnableDelayedExpansion
                                                :: корневой каталог логов
set "rootIN=c:\etc\logs"
                                                :: корневой каталог бэкапа логов
set "rootOUT=с:\etc\backup\logs"
 
for /f "usebackq delims=" %%D in (`dir "%rootIN%" /s/b/a:d`) do ( 
  echo:%%D
  if exist "%%D\*.*" (
    set "din1=%%D" & set "din2=!din1:%rootIN%=!"
    2>nul md "%rootOUT%!din2!"
    >nul copy /y "%%D\*.*" "%rootOUT%!din2!"
  )
)
pause
exit /b
1
0 / 0 / 0
Регистрация: 16.05.2018
Сообщений: 3
17.05.2018, 14:58  [ТС] 3
Видимо моих знаний не хватает: а где прописывать чтобы копировались логи только CompanyName2 ?
0
724 / 323 / 133
Регистрация: 17.03.2014
Сообщений: 811
17.05.2018, 21:27 4
Лучший ответ Сообщение было отмечено Atomck как решение

Решение

Atomck, виноват, этот момент я упустил, освобожусь - выложу код

Добавлено через 3 часа 17 минут
Цитата Сообщение от Atomck Посмотреть сообщение
где прописывать чтобы копировались логи только CompanyName2 ?
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@echo off & prompt $G & cls
setlocal EnableExtensions EnableDelayedExpansion
                                                :: корневой каталог логов
set "rootIN=c:\etc\logs"
                                                :: корневой каталог бэкапа логов
set "rootOUT=с:\etc\backup\logs"
                                                :: каталог для бэкапа
set "dirBackup=CompanyName2"
 
set /a cnt=0
for /f "usebackq delims=" %%D in (`dir "%rootIN%" /s/b/a:d`) do ( 
  call :GetLast "%%D"
  if /i "!GetLast!" == "%dirBackup%" if exist "%%D\*.*" (
    set /a "cnt+=1" & set "din1=%%D" & set "din2=!din1:%rootIN%=!"
    2>nul md "%rootOUT%!din2!"
    >nul copy /y "%%D\*.*" "%rootOUT%!din2!"||(echo:error copy "%%D\*.*")
  )
)
if %cnt% == 0 (echo:nothing copied...) else (echo:%cnt% file^(s^) copied...)
pause
exit /b
                        получить последний токен из %1
                        https://www.cyberforum.ru/post4304619.html
:GetLast
setlocal
  set "RC=%0" & set "RC=!RC:~1!"
  set "st=%~1"
  set "st="%st:\=" "%""
  for %%a in (%st%) do set st=%%~a
endlocal & set "%RC%=%st%" & exit /b 0
1
0 / 0 / 0
Регистрация: 16.05.2018
Сообщений: 3
23.05.2018, 12:01  [ТС] 5
Спасибо огромное за помощь! Получилось.
0
23.05.2018, 12:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.05.2018, 12:01
Помогаю со студенческими работами здесь

Удаление папок по дате в их именах
Доброго времени суток! У меня появилась проблема по удаление папок по дате. Суть: Есть папка...

VBA Outlook - Список папок, фильтр по дате
Добрый день! Имеется необходимость получить полный список всех папок с письмами, включая...

Сортировка папок и файлов по размеру, дате создания
Здравствуйте , подскажите как с помощью Windows Form сделать как чтобы ты сначала выбираешь...

Копирование папок
По глупости моей, я ничего не понимаю, а статьи в инернетах касаются только обычного c# а не Visual...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru