Назад | Перейти на главную страницу

Как прервать копирование при первой ошибке

Какие флаги я должен установить при использовании утилиты robocopy для Windows, чтобы robocopy прерывался при первой же обнаруженной ошибке, аналогично команде xcopy / dry?

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

Robocopy "C:\Source\" "C:\Destination\" *.* /V /S /E /COPY:DAT /R:1 /W:0 > log.txt

Вывод:

Source : C:\Source\  
Dest : C:\Destination\  
Files : \*.*  
Options : \*.* /V /S /E /COPY:DAT /R:1 /W:0
...

В /R:1 опция устанавливает количество повторных попыток равным 1, а /W:0 устанавливает время ожидания равным 0. Я использовал следующие другие параметры:

  • /S Копировать подпапки
  • /E Копировать подпапки, даже пустые
  • /V Создавать подробный вывод, показывающий пропущенные файлы, ошибки и т. Д.
  • /COPY:DAT Скопируйте данные, атрибуты и отметки времени, которые в любом случае используются по умолчанию
  • > log.txt Каналы выводят в текстовый файл для последующей проверки.

Я думаю, вы не найдете простого способа сделать это с помощью одного только Robocopy - у него нет переключателя для выхода при сбоях.

Xcopy намного менее эффективен, но по умолчанию он не работает так, как вы хотите, как вы указали. Что вы можете сделать, так это запустить XCopy, и если он завершится с уровнем ошибки 0 (успех), вы можете запустить Robocopy для выполнения функции очистки. Это не будет иметь дело с некоторыми крайними случаями, но по большей части будет вести себя так, как вы хотите.

Вам нужно будет использовать командный файл и robocopy коды выхода