Я планирую использовать robocopy для перемещения файлов и папок из каталога на сервере в каталог на жестком диске, используя следующую команду:

robocopy [источник] [пункт назначения] /e /move /xo

В случае конфликта имен файлов, я понимаю, что заменить файлы на жестком диске, только если он более новый (или точно такой же возраст?), А затем удалить файлы, которые были скопированы.

В идеале я хотел бы, чтобы исходный каталог был очищен от файлов, но я подозреваю, что может быть проблема; если файл не передан (возможно, он используется в данный момент или в месте назначения существует более новая версия), он не будет удален.

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

Я планирую использовать его в качестве командного файла, который регулярно выполняется Windows как запланированное задание.

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

Возможно, есть более простой способ сделать это?

1 ответ1

0

Для таких операций я обычно использую переключатель зеркала (/mir), вы можете дублировать каталог во второе место, когда вещи перемещаются из источника, они также удаляются из места назначения. Я понимаю, что это может не сработать в вашей ситуации.

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

forfiles /d -14 /p C:\myfolder /C "cmd /c del @file"

Это очистит все файлы старше 14 дней.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .