IT Geek: как синхронизировать файлы с одинаковыми именами

Скорее всего, вы слышали о службах, таких как Dropbox, которые используются для синхронизации файлов на нескольких компьютерах. Однако что делать, если вы хотите выполнить эту операцию на одном компьютере? То есть синхронизируйте файлы с одинаковыми именами по всей машине, чтобы при изменении одного из файлов все они обновлялись.

Эта функциональность может быть весьма полезной, особенно для разработчиков или системных администраторов, где иногда требуется дублирование файлов.

Как это устроено

Предположим, вы веб-разработчик, который со временем собрал замечательную коллекцию функций Javascript, которые вы используете на всех сайтах, которые вы поддерживаете. Когда вы добавляете или улучшаете этот файл Javascript (назовем его «library.js»), обновляется только текущая копия, которую вы редактируете. Это может означать, например, что если вы исправляете или улучшаете ошибку, вам придется вручную применить ее к папке с исходным кодом каждого из ваших сайтов.

Наш инструмент пытается решить проблему необходимости вручную применить обновленный файл к каждой исходной папке. Что оно делает:

  1. Поиск всех файлов с указанным именем (library.js) в указанной корневой папке (% UserProfile% \ Documents \ Web Sites).
  2. Для всех файлов с именем library.js он находит тот, который был изменен совсем недавно, и записывает его хэш-значение.
  3. Все остальные файлы с именем library.js (которые не являются самой последней обновленной копией) затем имеют свое значение хеш-файла по сравнению с самым последним (определенным на предыдущем шаге).
  4. Если значения хэша файла отличаются, соответствующая копия файла library.js заменяется самой последней обновленной копией.

Поскольку мы используем хеш-значения для сравнения файлов, мы уверены, что любые замененные файлы действительно отличаются от самой последней копии. Например, если вы должны были запустить процесс и было выполнено 5 замен файлов, повторный запуск процесса сразу после этого не произвел бы никаких замен, поскольку значения хэша файла теперь идентичны.

Обновление до новейшего инструмента копирования

Инструмент Update to Newest Copy Tool является модифицированной версией пакетного скрипта с тем же именем (оба доступны для скачивания по ссылкам внизу статьи), который был преобразован в EXE-файл для включения необходимого Nirsoft. Утилита HashMyFiles. Инструмент должен запускаться из командной строки с указанием определенных параметров. Если вы просто запустите EXE-файл, дважды щелкнув, вы получите сообщение об этом.

Чтобы использовать функцию «Обновить до самой новой копии», вы можете просмотреть параметры, запустив «UpdateToNewestCopy /?», Который показывает следующее диалоговое окно:

Единственными обязательными параметрами являются SourceFolder (например,% UserProfile% \ Documents \ Web Sites) и FileName (library.js). Однако вы можете изменить функциональность, добавив дополнительные ключи, как описано выше.

<Сильные> Примеры

Следующая команда найдет все файлы с именем «Common.vb» в папке «C: \ users \ jfaulkner \ documents \ Code Files», выполнив замену, но сделав резервную копию текущей копии перед перезаписью (этот вывод – то, что произвело верхнее изображение для этой статьи):

UpdateToNewestCopy «C: \ users \ jfaulkner \ documents \ Code Files» Common.vb/B

Следующая команда выполняет то же действие поиска, что и выше, однако она сообщает только о файлах, которые будут заменены, и фактически не выполняет никаких файловых операций:

UpdateToNewestCopy «C: \ users \ jfaulkner \ documents \ Code Files» Common.vb/V

Предположим, что существует файл с именем «C: \ Config \ FilesToSearch.txt» со следующим содержимым:

library.js
Common.vb

Следующая команда будет выполнять поиск в папке «Мои документы» текущего пользователя и сообщать о любых обновлениях «library.js» и «Common.vb», но фактически не будет выполнять никаких операций обновления:

UpdateToNewestCopy «% UserProfile% \ Documents» «C: \ Config \ FilesToSearch.txt»/L/V

Автоматизация процесса

Этот процесс является идеальным кандидатом для автоматизации. Создав запланированное задание (ничего особенного не требуется) с указанными настройками и выполняя его ежедневно/ежечасно/каждые 15 минут (в зависимости от ваших требований), вы можете поддерживать синхронизацию файлов в режиме «установите и забудь» мода.

Скачать

Обновление до самой новой копии – измененный исполняемый формат

Обновление до самой новой копии – исходные командные файлы (более ориентированные на командную строку)

Оцените статью
TutoryBird.Ru
Добавить комментарий