Эта функциональность может быть весьма полезна, особенно для разработчиков или системных администраторов, где иногда требуется дублирование файлов.
Как это устроено
Предположим, что вы веб-разработчик, который со временем собрал хорошую коллекцию функций Javascript, которые вы используете на всех сайтах, которые вы поддерживаете. По мере добавления или улучшения этого Javascript-файла (назовем его «library.js») обновляется только текущая копия, которую вы редактируете. Это означало бы, например, если вы исправите ошибку или улучшите, вам придется вручную применить ее к каждой из исходных кодов вашего другого сайта.
Наш инструмент пытается решить проблему необходимости вручную переместить обновленный файл в каждую исходную папку. Что оно делает:
- Ищет все файлы с указанным именем (library.js) в указанной корневой папке (% UserProfile% Documents Web Sites).
- Для всех файлов с именем library.js он находит тот, который был изменен совсем недавно, и отмечает его хэш-значение файла.
- Все остальные файлы с именем library.js (которые не являются последней обновленной копией) имеют значение хэш-файла файла по сравнению с последним (определенное на предыдущем шаге).
- Если значения хеш-файла различны, то соответствующая копия library.js заменяется самой последней обновленной копией.
Поскольку мы используем хэш-значения для сравнения файлов, мы уверены, что все замененные файлы действительно отличаются от последней копии. Например, если вы должны были запустить процесс и были сделаны 5 заменяемых файлов, запуск этого процесса сразу же после этого не будет заменять, так как значения хэш-файла теперь идентичны.
Обновление до новейшего инструмента копирования
Средство Update to Newest Copy Tool - это модифицированная версия пакетного скрипта с тем же именем (оба доступны для загрузки с использованием ссылок внизу статьи), которые были преобразованы в EXE-файл, чтобы включить нужный Nirsoft Утилита HashMyFiles. Инструмент должен запускаться из командной строки с определенными параметрами. Если вы просто запустили EXE-файл, дважды щелкнув мышью, вы получите сообщение об этом.
Чтобы использовать Update to Newest Copy, вы можете просмотреть параметры, запустив «UpdateToNewestCopy /?», Который показывает следующее диалоговое окно:
Единственными требуемыми параметрами являются SourceFolder (например,% UserProfile% Documents Web Sites) и FileName (library.js). Однако вы можете изменить функциональность, добавив дополнительные переключатели, как описано выше.
Примеры
Следующая команда найдет все файлы с именем «Common.vb» в папке «C: users jfaulkner documents Code Files», выполнив замену, но создав резервную копию текущей копии перед ее перезаписью (этот результат - это то, что создало top image для этой статьи):
UpdateToNewestCopy “C:usersjfaulknerdocumentsCode Files” Common.vb /B
Следующая команда выполняет одно и то же действие поиска, как указано выше, однако оно относится только к файлам, которые будут заменены и фактически не будут выполнять никаких операций с файлами:
UpdateToNewestCopy “C:usersjfaulknerdocumentsCode Files” Common.vb /V
Предположим, что есть файл с именем «C: Config FilesToSearch.txt» со следующим содержимым:
library.js Common.vb
Следующая команда будет искать папку моих документов текущего пользователя и сообщать о любых обновлениях «library.js» и «Common.vb», но фактически не будет выполнять никаких операций обновления:
UpdateToNewestCopy “%UserProfile%Documents” “C:ConfigFilesToSearch.txt” /L /V
Автоматизация процесса
Этот процесс является идеальным кандидатом для автоматизации. Создавая запланированную задачу (ничего особенного) с указанными настройками и выполняя ее ежедневно / ежечасно / каждые 15 минут (в зависимости от ваших требований), вы можете хранить файлы, синхронизированные в true set-it-and-forget-it мода.
Скачать
Обновить до последней копии - измененный исполняемый формат
Обновление до новейших командных файлов с исходным кодом (более ориентированная на командную строку)