Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
shurc
0 / 0 / 0
Регистрация: 23.11.2009
Сообщений: 5
#1

Синхронизация содержимого нескольких папок - CMD/BAT

13.10.2012, 11:40. Просмотров 2068. Ответов 0
Метки нет (Все метки)

Здравствуйте.
Есть у меня .bat-файл, который выполняет синхронизацию содержимого нескольких папок. Точнее сказать, резервное копирование, а не синхронизацию, т.к. копируются файлы всегда в одностороннем порядке. Вот примерно его содержимое:

Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
@set fromdisk=D:
@set todisk=C:
@set todir=backup
xcopy %fromdisk%\1\*.txt %todisk%\%todir% /d /c /i /Y /h /k /r /s
xcopy %fromdisk%\2\*.doc %todisk%\%todir% /d /c /i /Y /h /k /r /s
xcopy %fromdisk%\3\*.* %todisk%\%todir% /d /c /i /Y /h /k /r /s
xcopy %fromdisk%\4\*.rar %todisk%\%todir% /d /c /i /Y /h /k /r /s
@echo.
@pause
@goto end:
Но вот источники для копирования всегда разные и приходится всегда вручную этот .bat-файл корректировать. Хочу несколько автоматизировать эту процедуру. Для этого нужно решить 2 вопроса:

1. Нужно чтобы путь, откуда нужно копировать данные подставлялся из другого файла: path.txt. И в соответствии с заданной директорией и маской для файлов производилось копирование. Каждая строчка в файле path.txt соответствует директории, откуда нужно взять соответствующие файлы для копирования. Вот, например, содержимое этого файла:

path.txt
D:\Документы\Февраль\*.txt
D:\Таблицы\3.05.2012\*.doc
D:\Музыка\*.mp3
D:\Архивы\Win\март\*.rar

Т.е. нужно открыть файл, считать данные в массив (например, каждая строка = элемент массива) и запустить цикл для каждого элемента массива:

Bash
1
2
xcopy [element0] %todisk%\%todir% /d /c /i /Y /h /k /r /s
xcopy [element1] %todisk%\%todir% /d /c /i /Y /h /k /r /s
и.т.д.

Как это реализовать в .bat-файле?

2. Вторая функция, которую хотелось бы реализовать, должна создавать такую же структуру каталогов, как и в источнике копирования. Рассмотрим на примере 1-го элемента. Есть источник:

D:\Документы\Февраль\*.txt

Это значит, что мы должны в директории %todisk%\%todir% создать папку "Документы", в ней создать папку "Февраль" и туда скопировать уже все файлы, соответствующие заданной маске. Т.е. весь путь, кроме буквы диска мы должны воссоздать в резервной копии. Конечно же, если эти все папки уже есть (были созданны раннее), то заново их можно не создавать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2012, 11:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Синхронизация содержимого нескольких папок (CMD/BAT):

Сравнение содержимого двух папок
Доброго времени суток всем. Помогите написать батник. Сам в этом не селен....

Перемещение содержимого папок без их удаления
День добрый. Нужно переместить содержимое папки X с двумя десятками подпапок...

Создание папок с именами, взятыми из содержимого файлов
Добрый день! Такая задача - есть файлы с расширением .las (открываются...

Сравнение содержимого двух папок и вывод на экран различия
Имеются две папки (1,2) Помогите создать батник, что бы он мог сравнить две...

Копирование и удаление файлов на основе анализа содержимого двух папок
Добрый день! Снова нужна Ваша помощь по bat-файлу, задача в следующем: Есть...

Копирование содержимого файла default.html из всех папок в txt файл
Добрый день. Помогите разобраться с проблемой. Мне необходимо из всех...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2012, 11:40
Привет! Вот еще темы с решениями:

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

Копирование файлов из нескольких папок
Товарищи подскажите. Есть одна большая мега папка. В ней есть очень много...

Скрипт на копирование их нескольких папок в одну
Добрый день! Появилась необходимость в частом копирование папок (переношу...

Пакетное скачивание нескольких папок с сервера по очереди
Не могу правильно сформулировать вопрос. Значится так: Имеется скачивальщик...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru