View previous topic :: View next topic |
Author |
Message |
MilitaryPT
Joined: 17 Jan 2017 Posts: 8
|
(Separately) Posted: Tue Jan 17, 2017 19:23 Post subject: Синхронизация каталогов по эталонной папке |
|
|
Задача стоит в следующем: есть каталог эталон "C:\Metadata" который следует синхронизировать c каталогами
С:\config\Environment\restoreDefault\Metadata\
С:\config\Micro\restoreDefault\Metadata\
C:\config\PrivateEffects\restoreDefault\Metadata\ и т. д.
Каталогов пару сотен, стандартным методом получается синхронизировать только каталог<->каталог, а требует каталог<->каталоги.
Перекопал кучу тем, перепробовал уйму программ но решения так и не нашел. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1236
|
(Separately) Posted: Tue Jan 17, 2017 19:36 Post subject: |
|
|
MilitaryPT
Наверное, можно попробовать FastCopy в режиме Sync: из эталонной папки будут скопированы файлы, которые различаются по дате и/или размеру, а файлы, отсутствующие в эталонной папке, будут удалены. |
|
Back to top |
|
|
MilitaryPT
Joined: 17 Jan 2017 Posts: 8
|
(Separately) Posted: Tue Jan 17, 2017 20:07 Post subject: |
|
|
Skif_off
Но с таким же успехом я могу использовать и синхронизацию в Total Commander, проблема в том что каталогов Metadata пару сотен и каждый из них открывать в программе FastCopy займет кучу времени, к тому же копировать все файлы с эталонной папки не надо, а только обновить имеющиеся в обеих папках файлы. Также я могу пропустить по невнимательности один из каталогов что в дальнейшем приведет к куче ошибок в роботе программы. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jan 17, 2017 20:17 Post subject: |
|
|
MilitaryPT
Раз нет нужды в новых файлах, создайте один раз жёсткие/символические ссылки на файлы в этих каталогах, да и всё. Место сэкономите, да и синхронизировать больше не придётся.
Чтобы ускорить процесс для несменных файлов, после первого создания ссылок уже их можно раскидать в найденные поиском и выделенные папки при соответствующей настройке ключа CopyLinks (см. описание в справке). _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Rodny
Joined: 24 Jan 2007 Posts: 949 Location: Могилёв, Беларусь
|
(Separately) Posted: Tue Jan 17, 2017 21:25 Post subject: |
|
|
MilitaryPT wrote: | Перекопал кучу тем, перепробовал уйму программ но решения так и не нашел. |
Тут всё же не синхронизация, а зеркалирование, судя по описанию.
ICE Mirror. Есть командная строка, сделать простой батник. |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1236
|
(Separately) Posted: Tue Jan 17, 2017 21:35 Post subject: |
|
|
MilitaryPT wrote: | проблема в том что каталогов Metadata пару сотен и каждый из них открывать в программе FastCopy займет кучу времени |
Не открывайте, параметры командной строки там на что? В батнике зовёте всю пару сотен с /no_ui и засовываете его в планировщик, например. MilitaryPT wrote: | к тому же копировать все файлы с эталонной папки не надо |
В этом случае и не будет всё копироваться, будут скопированы только файлы с другим размером и/или датой, остальные пропущены. |
|
Back to top |
|
|
MilitaryPT
Joined: 17 Jan 2017 Posts: 8
|
(Separately) Posted: Wed Jan 18, 2017 06:18 Post subject: |
|
|
Flasher wrote: | Раз нет нужды в новых файлах, создайте один раз жёсткие/символические ссылки на файлы в этих каталогах |
Символические ссылки не помогут, так как данные каталоги должны обновится и упаковаться в rar архив.
Rodny wrote: | Тут всё же не синхронизация, а зеркалирование, судя по описанию. |
Думаю это именно синхронизация так как зеркалирование создает полное зеркало папки, а мне этого не требуется, только обновить те файлы которые есть в целевой директории по эталон директории.
Skif_off wrote: | В этом случае и не будет всё копироваться, будут скопированы только файлы с другим размером и/или датой, остальные пропущены. |
Я не знаю по чему но программа все равно копирует все файлы и папки, то есть она копирует и те файлы которых нет в целевом каталоге.
Запускаю программу с параметром sync
"C:\Program Files\FastCopy\FastCopy.exe" /cmd=sync "c:\Metadata\" /to="c:\test\2\remove\Metadata\"
Она конечно заменяет файлы которые отличаются но также и копирует все файлы с папки эталона в целевую папку, чего делать не требуется. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Jan 18, 2017 08:37 Post subject: |
|
|
MilitaryPT wrote: | так как данные каталоги должны обновится и упаковаться в rar архив. | Каталоги? Т.е. целевые? Так я и пишу - один раз создаёте ссылки и больше обновление не потребуется.
Если бы речь шла о файлах в каталоге-эталоне (т.е. они не редактируются, а перезаписываются через удаление старых), то это другое дело.
Насчёт упаковки поподробнее. Пишите от начала до конца в деталях, что и в каком виде требуется. Есть там затрагиваемые подпапки или нет и т.д. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2624
|
(Separately) Posted: Wed Jan 18, 2017 09:23 Post subject: |
|
|
MilitaryPT
Чтобы не пропустить по невнимательности один из каталогов, можно создать батник со строками наподобие
totalcmd.exe /S=S:= /L= C:\Metadata /R= С:\config\...\restoreDefault\Metadata
Но ключа /no_ui здесь нет, затем всё ручками делается. |
|
Back to top |
|
|
MilitaryPT
Joined: 17 Jan 2017 Posts: 8
|
(Separately) Posted: Wed Jan 18, 2017 10:41 Post subject: |
|
|
Flasher wrote: | Насчёт упаковки поподробнее. Пишите от начала до конца в деталях, что и в каком виде требуется. Есть там затрагиваемые подпапки или нет и т.д. |
Есть программа в которой есть каталог "Metadata" он обновляется с выходом нового патча. Также есть программа которая редактирует этот каталог путем замены в нем фалов которые могут располагаться в различных подкаталогах. В программе есть две функции Remove Effects и Restore Default. При выборе функции Remove Effects в каталоге эталоне изменяются определенные файлы путем замены файлов с каталога removeEffects\Metadata\Effects\*\*\ *\ в эталонный каталог. При выборе функцию Restore Default программа должна вернуть прежний вид каталогу путем замены фалов из каталога \restoreDefault\Metadata\Effects\*\ *\ *\ в эталонный каталог.
Задача стоит в следующем чтобы держать каталоги restoreDefault\Metadata\*\*\...\ в актуальном состоянии с выходом нового патча, путем синхронизации c эталоном Metadata. После синхронизации программа которая включает в себя все эти каталоги упаковывается и отправляется на форум. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Jan 18, 2017 10:56 Post subject: |
|
|
MilitaryPT
Замена там как происходит? С удалением или перезаписью содержимого файлов?
MilitaryPT wrote: | После синхронизации программа которая включает в себя все эти каталоги упаковывается и отправляется на форум. | Для этого достаточно освежить файлы командой F в WinRAR.
Скрипт освежения и упаковки сделать могу, только уже в ПО, т.к. история совсем не про ТС. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
MilitaryPT
Joined: 17 Jan 2017 Posts: 8
|
(Separately) Posted: Wed Jan 18, 2017 11:06 Post subject: |
|
|
Flasher wrote: | Замена там как происходит? С удалением или перезаписью содержимого файлов? |
Перезапись содержимого файлов, файлы остаются на прежних местах просто вносятся изменения.
Копаясь на англоязычном форуме я нашел тему, я так понимаю что стандартными средствами данную задачу решить в Total Commander не возможно?
http://ghisler.ch/board/viewtopic.php?t=27361&view=previous |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Jan 18, 2017 11:12 Post subject: |
|
|
MilitaryPT wrote: | Перезапись содержимого файлов | В таком случае предложение со ссылками остаётся актуальным. Нет смысла плодить сущности. А во время упаковки в архив пойдут именно файлы, если не использовать ключи -oh/-ol.
А вообще для символических ссылок (в отличии от жёстких) не имеет значения, удалялись файлы или нет. Так что в любом случае решение годное.
MilitaryPT wrote: | я так понимаю что стандартными средствами данную задачу решить в Total Commander не возможно? | Автоматом (без ручек) - нет. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
MilitaryPT
Joined: 17 Jan 2017 Posts: 8
|
(Separately) Posted: Wed Jan 18, 2017 11:28 Post subject: |
|
|
Flasher wrote: | В таком случае предложение со ссылками остаётся актуальным. |
А примерный алгоритм создания символьных ссылок каков?
Для начала должен найти все пути ко всем файлам в restoreDefault\Metadata\ потом создать ссылки в папку эталон этих файлов, а затем только упаковать? Не получится так что я упакую только ссылки? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Jan 18, 2017 12:17 Post subject: |
|
|
MilitaryPT
Забираем утилиту по приведённой ссылке.
В другой панели одна из целевых папок, стоим в папке-эталоне, жмём Ctrl+B, выделяем нужные файлы, жмём кнопку (см. пути): Code: | TOTALCMD#BAR#DATA
*%COMMANDER_PATH%\Utils\NTLinksMaker\NTLinksMaker.exe /q /s
/r="%P" "@%WL" "%T"
Utils\NTLinksMaker\NTLinksMaker.exe
Создать символические ссылки на выбранное в другой панели | После этого исходной папкой ставим ту, куда попали ссылки, а последующие папки располагаем в другой панели и пользуемся кнопкой:
Code: | TOTALCMD#BAR#DATA
xcopy
"%P*" "%T" /ciqshrukoxyb
wcmicons.dll,48
Освежить имеющиеся файлы в структуре|целевой панели файлами из исходной
1 | Можно, в принципе, и для списка путей папок (см. путь к Список.txt) сделать:
Code: | TOTALCMD#BAR#DATA
%ComSpec% /c for /f "delims=" %# in ('type "%COMMANDER_PATH%\Scripts\Список.txt"')
do xcopy "%P*" "%%#" /ciqshrukoxyb
wcmicons.dll,48
Освежить имеющиеся файлы в структурах целевых|каталогов заданного списка файлами из активного
1 |
MilitaryPT wrote: | Не получится так что я упакую только ссылки? | Я же писал: Flasher wrote: | А во время упаковки в архив пойдут именно файлы, если не использовать ключи -oh/-ol. |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Thu Jan 19, 2017 04:40; edited 2 times in total |
|
Back to top |
|
|
|