Форум программистов, компьютерный форум, киберфорум
Наши страницы

Batch (CMD/BAT)

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
shurc
0 / 0 / 0
Регистрация: 23.11.2009
Сообщений: 5
#1

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

13.10.2012, 11:40. Просмотров 2003. Ответов 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):

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

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

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

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

Копирование файлов из нескольких папок - CMD/BAT
Товарищи подскажите. Есть одна большая мега папка. В ней есть очень много других папок. Они все имеют одинаковое название, только...

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

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

Пакетное скачивание нескольких папок с сервера по очереди - CMD/BAT
Не могу правильно сформулировать вопрос. Значится так: Имеется скачивальщик POPOLN.CMD. Чтобы выкачать папку с сервера надо в командной...

Копирование содержимого нескольких файлов в один - CMD/BAT
Интересную вещь заметил, не встречал вроде, но если уже опубликовано можно убрать. Например содержимое файлов: 1.txt 222 333 ...

Копирование нескольких определённых файлов и папок в одну определённую папку - CMD/BAT
Уважаемые форумчане мне нужен скрипт копирования папок и определенных файлов. Мне нужно скопировать 3 папки расположенных в разным местах...

Вывод на экран дисплея содержимого нескольких текстовых файлов, заданных как параметры командного файла - CMD/BAT
1.создать командный файл, обеспечивает вывод на экран дисплея какого либо текстового файла, спецификация которого задана как параметр...


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

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

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