Параметр / MON: 1 отлично работает и запускает сканирование каталогов, если произошли только изменения. Это невозможно сделать, если robocpy запускается из планировщика Windows каждые 10 минут.
Есть ли способ запустить
robocopy \\192.168.1.100\D$\RoboCopyTest \\192.168.1.200\D$\RoboCopyTest /FFT /Z /ETA /E /XA:H /R:0 /W:1 /XO /NP /NDL /NFL /MON:1
команда автоматически при запуске Windows, и если команда была остановлена по какой-либо причине - перезапустите ее и уведомите журнал событий Windows, что команда была остановлена по какой-либо причине. Команда robocpy с параметром / MON: n имеет бесконечный цикл для запуска, только если в файлах было N изменений.
Чтобы расширить приведенные выше ответы и предоставить параметры для robocopy:
sc create "Robocopy Service" binpath="c:\windows\system32\robocopy.exe /JOB:robocopy"
Будет прочитан файл robocopy.rcj, содержащий все параметры.
Вы можете выполнить команду robocopy со всеми необходимыми параметрами и добавить команду / SAVE: robocopy, чтобы создать файл robocopy.rcj. Затем вы можете изменить параметры, просто отредактировав файл robocopy.rcj.
Возможно, вам будет лучше создать для этого службу Windows, а не запускать ее из планировщика задач. Инфраструктура службы разработана на основе этой программы типа «запускать один раз - запускать навсегда» и имеет ловушки для событий в случае неизвестной остановки.
Создать пользовательский сервис довольно просто. ХотяСтатья предназначена для Windows 2000, он по-прежнему работает в 2008 году. Команда 'sc' используется для создания службы.
sc create "Robocopy-Service" binPath= "c:\tools\robocopy.exe" start= auto
Измените значения в зависимости от того, как вы хотите, чтобы служба запускалась. Как только он появится, вы можете войти в диспетчер служб и изменить службу, чтобы настроить обработку внезапной остановки. Он всегда будет записывать и событие («Служба xyz неожиданно остановлена»), но вы можете указать ему, как перезапустить службу, или запустить сценарий, если вам нужно отправить электронное письмо об этом.