Robocopy
имеет возможность контролировать исходный каталог и копировать любые файлы, которые имеют изменения. Вы можете указать, сколько изменений в каталоге должно произойти перед копированием ( /mon n
где n
находится количество изменений) и сколько времени ждать перед повторным сканированием ( /mot t
где t
время ожидания в минутах).
Я хотел бы отслеживать папку почти непрерывно, так как я сканирую только один файл, и я хочу, чтобы изменения были в основном мгновенными. Я не могу сделать монитор Robocopy менее, чем за одну минуту. Я пытался, /mot 0.5
и это не удается. Я также пытался /mot 0
и robocopy просто выходит после сканирования один раз, без постоянного мониторинга.
Как я могу сделать робокопию сканирования папки почти непрерывно с шагом менее 1 минуты? В качестве альтернативы, есть ли другой инструмент командной строки, который может постоянно отслеживать источник файла и копировать изменения в режиме реального времени?
источник
Ответы:
Robocopy
Поскольку он принимает только минуты в качестве аргумента, я думаю, вы не можете заставить его работать чаще. Однако вы можете запустить его, используя пакетный файл, и позволить синхронизации и цикличности происходить в пакетном файле или в запланированных задачах, а не в рамках Robocopy.
источник
В ваших тегах указано, что вы используете Windows 8. Это хорошо, поскольку у вас есть отличный инструмент PowerShell и удобный маленький командлет с именем
Register-ObjectEvent
.Создайте текстовый файл, измените расширение на
.ps1
, вставьте приведенный ниже скрипт в файл. Измените$watchedFolder
переменную на папку, которую вы хотите посмотреть. Измените функцию Do-Something, включив в нее команду robocopy или любую другую. Запустите сценарий, если он запущен, и эта функция будет запускаться (почти мгновенно!) При изменении файла или папки в отслеживаемой папке.Вы можете запустить этот скрипт при запуске Windows, и он будет работать в фоновом режиме без использования таймера.
Увидеть его в действии
Запустите сохраненный скрипт.
Вы увидите мигание окна консоли, после того как они закроются, единственное указание на то, что оно работает, будет парой новых процессов.
Сделайте что-нибудь на своем рабочем столе для тестирования.
Немного справочной информации - на случай, если вы не знакомы с инструментами, использованными в этом ответе.
System.IO.FileSystemWatcher
пожалуйста, посетите страницу MSDN .источник
DSynchronize - это отдельная утилита, которая позволяет периодически синхронизировать две или более папок на жестком диске, дискете, в локальной сети, на USB-ключе, CD-DVD (с программным обеспечением для записи пакетов) и на FTP-сервере. Дело не совсем в том, о чем идет речь, а в том, что я смог найти.
Я тоже искал решение минимального времени в 1 минуту в Robocopy и нашел этот двухлетний вопрос. Я закончил тем, что мне предложили это программное обеспечение, и это то, что я использую. Для записи, я не имею никакого отношения к программному обеспечению.
Плюсы:
Минусы:
Параметр синхронизации в реальном времени отмечен на скриншоте в разделе «Специальные параметры». Это было бы тем, что вопрос, кажется, описывает как цель. Если он не отмечен и у вас не установлен таймер, то вы можете нажать кнопку «Синхронизировать», чтобы начать однократную синхронизацию.
Как синхронизировать две папки:
Я также нашел это видео на YouTube , которое показывает программное обеспечение в действии. Он показывает более старую версию и варианты не в том же месте, но он дает представление о том, как работает программное обеспечение.
источник