Как прервать робокопию при первой ошибке
При использовании утилиты robocopy для Windows, какие флаги я устанавливаю, чтобы robocopy прерывался при самой первой обнаруженной ошибке, аналогично команде xcopy / dry?
Мне нужно отразить две папки, и иногда некоторые файлы будут заблокированы. Я не хочу, чтобы robocopy продолжал пытаться копировать файлы или перезаписывать файлы, которые не заблокированы - скорее всего, самая первая ошибка должна остановить весь процесс копирования.
3 ответа
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.
Я думаю, что вы не найдете простого способа сделать это с одной только Robocopy - у нее нет переключателя на выход при сбоях.
Xcopy намного менее эффективен, но по умолчанию он терпит неудачу так, как вы хотите, как вы указали. Что вы можете сделать, это запустить XCopy, и если он заканчивается с уровнем ошибки 0 (успех), то вы можете запустить Robocopy для выполнения функции очистки. Это не будет иметь дело с некоторыми крайними случаями, но в большинстве случаев будет вести себя так, как вы хотите.