Синхронизация каталогов по эталонной папке

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Аватара пользователя
MilitaryPT
Сообщения: 8
Зарегистрирован: Вт янв 17, 2017 17:03

Синхронизация каталогов по эталонной папке

Сообщение MilitaryPT »

Задача стоит в следующем: есть каталог эталон "C:\Metadata" который следует синхронизировать c каталогами
С:\config\Environment\restoreDefault\Metadata\
С:\config\Micro\restoreDefault\Metadata\
C:\config\PrivateEffects\restoreDefault\Metadata\ и т. д.
Каталогов пару сотен, стандартным методом получается синхронизировать только каталог<->каталог, а требует каталог<->каталоги.
Перекопал кучу тем, перепробовал уйму программ но решения так и не нашел.
Skif_off
Сообщения: 1255
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

MilitaryPT
Наверное, можно попробовать FastCopy в режиме Sync: из эталонной папки будут скопированы файлы, которые различаются по дате и/или размеру, а файлы, отсутствующие в эталонной папке, будут удалены.
Аватара пользователя
MilitaryPT
Сообщения: 8
Зарегистрирован: Вт янв 17, 2017 17:03

Сообщение MilitaryPT »

Skif_off
Но с таким же успехом я могу использовать и синхронизацию в Total Commander, проблема в том что каталогов Metadata пару сотен и каждый из них открывать в программе FastCopy займет кучу времени, к тому же копировать все файлы с эталонной папки не надо, а только обновить имеющиеся в обеих папках файлы. Также я могу пропустить по невнимательности один из каталогов что в дальнейшем приведет к куче ошибок в роботе программы.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MilitaryPT
Раз нет нужды в новых файлах, создайте один раз жёсткие/символические ссылки на файлы в этих каталогах, да и всё. Место сэкономите, да и синхронизировать больше не придётся.
Чтобы ускорить процесс для несменных файлов, после первого создания ссылок уже их можно раскидать в найденные поиском и выделенные папки при соответствующей настройке ключа CopyLinks (см. описание в справке).
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Rodny
Сообщения: 949
Зарегистрирован: Ср янв 24, 2007 00:59
Откуда: Могилёв, Беларусь

Сообщение Rodny »

MilitaryPT писал(а):Перекопал кучу тем, перепробовал уйму программ но решения так и не нашел.
Тут всё же не синхронизация, а зеркалирование, судя по описанию.
ICE Mirror. Есть командная строка, сделать простой батник.
Skif_off
Сообщения: 1255
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

MilitaryPT писал(а):проблема в том что каталогов Metadata пару сотен и каждый из них открывать в программе FastCopy займет кучу времени
Не открывайте, параметры командной строки там на что? :) В батнике зовёте всю пару сотен с /no_ui и засовываете его в планировщик, например.
MilitaryPT писал(а):к тому же копировать все файлы с эталонной папки не надо
В этом случае и не будет всё копироваться, будут скопированы только файлы с другим размером и/или датой, остальные пропущены.
Аватара пользователя
MilitaryPT
Сообщения: 8
Зарегистрирован: Вт янв 17, 2017 17:03

Сообщение MilitaryPT »

Flasher писал(а):Раз нет нужды в новых файлах, создайте один раз жёсткие/символические ссылки на файлы в этих каталогах
Символические ссылки не помогут, так как данные каталоги должны обновится и упаковаться в rar архив.
Rodny писал(а):Тут всё же не синхронизация, а зеркалирование, судя по описанию.
Думаю это именно синхронизация так как зеркалирование создает полное зеркало папки, а мне этого не требуется, только обновить те файлы которые есть в целевой директории по эталон директории.
Skif_off писал(а):В этом случае и не будет всё копироваться, будут скопированы только файлы с другим размером и/или датой, остальные пропущены.
Я не знаю по чему но программа все равно копирует все файлы и папки, то есть она копирует и те файлы которых нет в целевом каталоге.

Запускаю программу с параметром sync
"C:\Program Files\FastCopy\FastCopy.exe" /cmd=sync "c:\Metadata" /to="c:\test\2\remove\Metadata"
Она конечно заменяет файлы которые отличаются но также и копирует все файлы с папки эталона в целевую папку, чего делать не требуется.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MilitaryPT писал(а):так как данные каталоги должны обновится и упаковаться в rar архив.
Каталоги? Т.е. целевые? Так я и пишу - один раз создаёте ссылки и больше обновление не потребуется.
Если бы речь шла о файлах в каталоге-эталоне (т.е. они не редактируются, а перезаписываются через удаление старых), то это другое дело.

Насчёт упаковки поподробнее. Пишите от начала до конца в деталях, что и в каком виде требуется. Есть там затрагиваемые подпапки или нет и т.д.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

MilitaryPT
Чтобы не пропустить по невнимательности один из каталогов, можно создать батник со строками наподобие
totalcmd.exe /S=S:= /L= C:\Metadata /R= С:\config\...\restoreDefault\Metadata
Но ключа /no_ui здесь нет, затем всё ручками делается.
Аватара пользователя
MilitaryPT
Сообщения: 8
Зарегистрирован: Вт янв 17, 2017 17:03

Сообщение MilitaryPT »

Flasher писал(а):Насчёт упаковки поподробнее. Пишите от начала до конца в деталях, что и в каком виде требуется. Есть там затрагиваемые подпапки или нет и т.д.
Есть программа в которой есть каталог "Metadata" он обновляется с выходом нового патча. Также есть программа которая редактирует этот каталог путем замены в нем фалов которые могут располагаться в различных подкаталогах. В программе есть две функции Remove Effects и Restore Default. При выборе функции Remove Effects в каталоге эталоне изменяются определенные файлы путем замены файлов с каталога removeEffects\Metadata\Effects\*\*\ *\ в эталонный каталог. При выборе функцию Restore Default программа должна вернуть прежний вид каталогу путем замены фалов из каталога \restoreDefault\Metadata\Effects\*\ *\ *\ в эталонный каталог.
Задача стоит в следующем чтобы держать каталоги restoreDefault\Metadata\*\*\...\ в актуальном состоянии с выходом нового патча, путем синхронизации c эталоном Metadata. После синхронизации программа которая включает в себя все эти каталоги упаковывается и отправляется на форум.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MilitaryPT
Замена там как происходит? С удалением или перезаписью содержимого файлов?
MilitaryPT писал(а): После синхронизации программа которая включает в себя все эти каталоги упаковывается и отправляется на форум.
Для этого достаточно освежить файлы командой F в WinRAR.

Скрипт освежения и упаковки сделать могу, только уже в ПО, т.к. история совсем не про ТС.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MilitaryPT
Сообщения: 8
Зарегистрирован: Вт янв 17, 2017 17:03

Сообщение MilitaryPT »

Flasher писал(а):Замена там как происходит? С удалением или перезаписью содержимого файлов?
Перезапись содержимого файлов, файлы остаются на прежних местах просто вносятся изменения.
Копаясь на англоязычном форуме я нашел тему, я так понимаю что стандартными средствами данную задачу решить в Total Commander не возможно?
http://ghisler.ch/board/viewtopic.php?t ... w=previous
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MilitaryPT писал(а):Перезапись содержимого файлов
В таком случае предложение со ссылками остаётся актуальным. Нет смысла плодить сущности. А во время упаковки в архив пойдут именно файлы, если не использовать ключи -oh/-ol.
А вообще для символических ссылок (в отличии от жёстких) не имеет значения, удалялись файлы или нет. Так что в любом случае решение годное.
MilitaryPT писал(а): я так понимаю что стандартными средствами данную задачу решить в Total Commander не возможно?
Автоматом (без ручек) - нет.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MilitaryPT
Сообщения: 8
Зарегистрирован: Вт янв 17, 2017 17:03

Сообщение MilitaryPT »

Flasher писал(а):В таком случае предложение со ссылками остаётся актуальным.
А примерный алгоритм создания символьных ссылок каков?
Для начала должен найти все пути ко всем файлам в restoreDefault\Metadata\ потом создать ссылки в папку эталон этих файлов, а затем только упаковать? Не получится так что я упакую только ссылки?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MilitaryPT
Забираем утилиту по приведённой ссылке.
В другой панели одна из целевых папок, стоим в папке-эталоне, жмём Ctrl+B, выделяем нужные файлы, жмём кнопку (см. пути):

Код: Выделить всё

TOTALCMD#BAR#DATA
*%COMMANDER_PATH%\Utils\NTLinksMaker\NTLinksMaker.exe /q /s
/r="%P" "@%WL" "%T"
Utils\NTLinksMaker\NTLinksMaker.exe
Создать символические ссылки на выбранное в другой панели
После этого исходной папкой ставим ту, куда попали ссылки, а последующие папки располагаем в другой панели и пользуемся кнопкой:

Код: Выделить всё

TOTALCMD#BAR#DATA
xcopy
"%P*" "%T" /ciqshrukoxyb
wcmicons.dll,48
Освежить имеющиеся файлы в структуре|целевой панели файлами из исходной

1
Можно, в принципе, и для списка путей папок (см. путь к Список.txt) сделать:

Код: Выделить всё

TOTALCMD#BAR#DATA
%ComSpec% /c for /f "delims=" %# in ('type "%COMMANDER_PATH%\Scripts\Список.txt"')
do xcopy "%P*" "%%#" /ciqshrukoxyb
wcmicons.dll,48
Освежить имеющиеся файлы в структурах целевых|каталогов заданного списка файлами из активного

1
MilitaryPT писал(а):Не получится так что я упакую только ссылки?
Я же писал:
Flasher писал(а):А во время упаковки в архив пойдут именно файлы, если не использовать ключи -oh/-ol.
Последний раз редактировалось Flasher Чт янв 19, 2017 03:40, всего редактировалось 2 раза.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить