Есть ли инструмент синхронизации папок / fileов, который может генерировать скрипт синхронизации

Я ищу инструмент, который может синхронизировать папки, создавая скрипт, который затем может запускаться из command line, а созданный скрипт не требует, чтобы инструмент был установлен для работы.

Например, он может сравнивать directoryи, а затем сценарий операций копирования / удаления и позволяет вам сохранять сценарий и запускать скрипт с любого компьютера.

Также я работаю в мире окон. Я просмотрел довольно много инструментов синхронизации, но ни один из них до сих пор не создавал scripting.

Любые советы будут высоко ценится!

EDIT: Ситуация у меня есть, у нас есть несколько websiteов с одинаковой базой кода. Когда эта базовая база кода обновляется новыми новыми fileами, fileы удаляются из fileов.

Я хотел бы создать скрипт, который может быть упакован с новыми и измененными fileами, которые будут их копировать, и удалять ненужные fileы. Вид действительно простой программы обновления. В настоящее time я делаю это с winmerge, я помещаю измененные и новые fileы в архив, и я копирую имена отсутствующих элементов и пишу сценарий вручную.

Поскольку пакет будет содержать только новые и измененные fileы, сценарий должен помнить, какие fileы нужно удалить, поскольку при запуске скрипта ему не нужно подkeyаться к исходному источнику, чтобы отобразить наши удаленные fileы. В настоящее time я пишу сценарий вручную, и это утомительно. Я просто надеялся, что некоторые инструменты синхронизации fileов имеют возможность упаковать обновления в комплекте с измененными fileами и удалять, похоже, что это будет хорошая function.

3 Solutions collect form web for “Есть ли инструмент синхронизации папок / fileов, который может генерировать скрипт синхронизации”

Именно поэтому я понимаю, у вас есть один источник, с несколькими одинаковыми адресами. Вы вносите изменения в свой источник (творения, обновления, удаления) и хотите легко сделать ваши адресаты идентичными источнику со всеми этими изменениями?

Тогда это то, что вам нужно:

robocopy "\\sourcepath\folder" "\\destinationpath1\folder" /MIR /NFL /NDL robocopy "\\sourcepath\folder" "\\destinationpath2\folder" /MIR /NFL /NDL robocopy "\\sourcepath\folder" "\\destinationpath3\folder" /MIR /NFL /NDL 

Переkeyатель / MIR сделает ваши адресаты идентичными вашему источнику, вkeyая действия по удалению. / NFL и / NDL останавливают robocopy из вывода fileов и папок, которые меняются. Это создает простой вывод, в котором перечислены количество и размер fileов. Если вам нужен журнал того, что было синхронизировано, исkeyите эти переkeyатели.

Однако, если у вас есть настройки, настроенные для ваших целей, они будут удалены.

Обновление после первого комментария Криса об этом ответе

Я не думаю, что то, что вы ищете, возможно с помощью robocopy или других инструментов command line.

Однако, вот какой-то псевдо-код, который будет делать то, что вы ищете, я думаю. Фактический сценарий выходит за frameworks моих навыков без большого количества исследований, но это рабочий process, который вам нужен:

 $codebase = "\\codebase\" $comparesource = "\\destination to compare to codebase\" $packagesource = "\\where you store update package files\" $finaldestination = "\\path you're actually trying to update\" robocopy $codebase $comparesource /MIR /LOG:c:\log.txt /FP /NS /NJH /NJS /L 
  • / FP = Полный path, указанный в fileе журнала
  • / NS = Нет размера, указанного в fileе журнала
  • / NJH и / NJS = less заголовка задания и сводки в fileе журнала
  • / L = Просто перечислите, что произойдет, на самом деле не вносите никаких изменений

Это даст вам file, содержащий результат следующим образом:

 *EXTRA File C:\file1.txt New File c:\file2.xls Newer c:\file3.txt 

Тогда это нужно будет запустить:

 If line contains "newer" or "New File" rest of line enters array $copyfilename If line contains "*EXTRA" rest of line enters array $deletefilename \\This would only work for a flat structure; subfolders complicate things and you'd need to grab the file name and subfolder name instead. for each in $copyfilename { robocopy $codebase\$copyfilename $packagesource\$copyfilename /e Append above line to $packagesource\updatepackage.bat, replacing $codebase with $packagesource and $packagesource with $finaldestination } for each in $deletefilename { append "del $finaldestination\$deletefilename" to $packagesource\updatepackage.bat } 

В конце этого у вас будет папка (ваш $ packagesource), содержащий новые и измененные fileы, а также командный file с commandми копирования для этих новых и измененных fileов и удаление команд для удаленных fileов.

Um, robocopy сохраняет конфигурацию задания на копирование в file, который вы можете вспомнить позже с параметром. Достаточно ли этого по вашему определению скрипта? Это была загрузка в XP / 2003 и установлена ​​по умолчанию в вариантах Vista / 7/2008. Существует также RichCopy , наложение graphического interfaceа на вышеупомянутую robocopy. Он может даже выводить file задания, чтобы позже запустить сценарий robocopy.

Попробуйте Microsoft Synctoy . Он не создает сценарии, но доступен для сценариев. Если вы хотите создать собственный скрипт, вам, вероятно, придется написать свой собственный. Эти ребята были потрясающими, когда я впервые начал изучать scripting Windows.

  • Как определить, что имеет locking для определенного fileа в Windows?
  • Вызовите подkeyение к удаленному рабочему столу из гиперссылки
  • Проверка кластеров: «Серверы не все находятся в одной организационной единице»
  • Установка накопительного обновления за предыдущий месяц
  • Godaddy выделенный server случайным образом отkeyает пользователей только на 400-500 активных пользователей
  • Установить server NTP для всех членов AD (старый и вновь подkeyенный) с помощью w32tm или PowerShell?
  • Как я могу предотвратить Windows Server 2003 от обрезки рабочего набора processа?
  • SMTP не работает на отдельной машине
  • Разница между уровнем 1 Oplock и filterом Oplock
  • Windows Server 2012 R2 VM Резервное копирование завершается с недостаточным объемом хранилища, доступным для создания fileа хранения теневой копии или других данных теневой копии
  • Как запустить .NET и SQL Server в USB-накопителе?
  • Interesting Posts

    Служба Apache не может get доступ к локальному диску

    Почему nginx 1.0.0, по-viewимому, не использует kernel ​​для открытого кеша fileов в Gentoo? (высокий iowait)

    Полностью textовый search Mysql вызывает высокий уровень использования CPU

    Является ли мой server в режиме RAID вообще?

    Amazon Elastic IP в машине VM

    php-cgi и mysqld не удалось и вызвали уведомление

    принудительная validation диска (перезагрузка)

    Как отправитель проверяется с помощью функции «Отправить почту как» Gmail?

    CURL PHP не может разрешить хост

    Какой PHP memory_limit вы предлагаете для VPS с 256M RAM?

    Веб-приложение IIS с высокой доступностью, через ковш Google Cloud Storage, установленный на экземпляр Windows

    Изменение столбцов очень больших таблиц mysql с минимальным временем простоя или без него

    Устранение ошибок DTCPing

    Как я могу развернуть страницу обслуживания 503 при обновлении капли Digital Ocean?

    Безопасно ли запускать два экземпляра svnserve в одном репозитории или только один?