Разница между xcopy и robocopy

Я новичок в пакетных сценариях. Как новичок, я считаю, что оба они полезны при написании сценариев Каковы ключевые различия между xcopy и robocopy?

5 ответов


Robocopy заменяет XCopy в более новых версиях windows

  1. использует зеркалирование, XCopy не
  2. имеет параметр / RH, позволяющий установить время для запуска копии
  3. имеет параметр /MON:n для проверки различий в файлах
  4. копирует больше атрибутов файла, чем XCopy

Да, я согласен с Марком Setchell, они оба обосрались. (привлечен к вам Microsoft)


обновление:

коды возврата XCopy:

0 - Files were copied without error.
1 - No files were found to copy.
2 - The user pressed CTRL+C to terminate xcopy. enough memory or disk space, or you entered an invalid drive name or invalid syntax on the command line.
5 - Disk write error occurred.

Robocopy возвращает коды:

0 - No errors occurred, and no copying was done. The source and destination directory trees are completely synchronized.
1 - One or more files were copied successfully (that is, new files have arrived).
2 - Some Extra files or directories were detected. No files were copied Examine the output log for details. 
3 - (2+1) Some files were copied. Additional files were present. No failure was encountered.
4 - Some Mismatched files or directories were detected. Examine the output log. Some housekeeping may be needed.
5 - (4+1) Some files were copied. Some files were mismatched. No failure was encountered.
6 - (4+2) Additional files and mismatched files exist. No files were copied and no failures were encountered. This means that the files already exist in the destination directory
7 - (4+1+2) Files were copied, a file mismatch was present, and additional files were present.
8 - Some files or directories could not be copied (copy errors occurred and the retry limit was exceeded). Check these errors further.
16 - Serious error. Robocopy did not copy any files. Either a usage error or an error due to insufficient access privileges on the source or destination directories.

более подробная информация о возвращаемых значениях Robocopy здесь:http://ss64.com/nt/robocopy-exit.html


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

дополнение: для полноты существует одна известная проблема с ребром с robocopy;он может молча не копировать файлы или каталоги, имена которых содержат недопустимые последовательности UTF-16. если это проблема для вас, вам может потребоваться взглянуть на сторонние инструменты или написать свой.


различия, которые я мог видеть, в том, что Robocopy имеет гораздо больше вариантов, но я не нашел ни одного из них особенно полезным, если я не делаю что-то особенное.

иронично, что robocopy повторяет неудачную копию, но она также потерпела неудачу в моих тестах, где xcopy никогда не делал.

Я сделал полный файл (байт в байт) файл сравнивает после моих тестов.

вот коммутаторы, которые я использовал с robocopy в своих тестах:

 **"/E /R:1 /W:1 /NP /NFL /NDL"**.  

Если кто-нибудь знает более быструю комбинацию (кроме удаления /E, которая мне нужна), я хотел бы услышать.

еще одна интересная / разочаровывающая вещь с robocopy заключается в том, что если копия терпит неудачу, по умолчанию она повторяет 1,000,000 раз с 30-секундной задержкой между каждой попыткой. Если вы бежите долго пакетный файл unattended, вы можете быть очень разочарованы, когда вернетесь через несколько часов и обнаружите, что он все еще пытается скопировать определенный файл.

переключатели /R и /W позволяют изменить это поведение.

  • С /R вы можете сказать, сколько раз повторить попытку,
  • / W давайте вы укажете время ожидания перед повторными попытками.

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

  • мои тесты были все сделано на одном компьютере и
  • скопировать файлы с одного внешнего диска на другой внешний,
  • оба на портах USB 3.0.

Я также включил Fastcopy и Windows Copy в мои тесты, и каждый тест был запущен 10 раз. Заметьте, различия были довольно существенными. 95% доверительные интервалы не пересекались.


его больно слышать, что люди все еще страдают от рук * {Копировать} независимо от версии. Я опытный пакетный и Bash сценарист, и я рекомендую rsync , вы можете запустить это в cygwin (cygwin.org) или вы можете найти некоторые двоичные файлы, плавающие вокруг . и вы можете перенаправить вывод на 2>&1 в какой-то файл журнала, например out.журнал для последующего анализа. Удачи людям его время снова любить жизнь . = М. Каан=


они оба дрянь! XCOPY был старше и ненадежен, поэтому Microsoft заменила его на ROBOCOPY, который все еще мусор.

http://answers.microsoft.com/en-us/windows/forum/windows_8-files/robocopy-appears-to-be-broken-in-windows-8/9a7634c4-3a9d-4f2d-97ae-093002a638a9

не волнуйтесь, это давняя традиция, которая была начата в оригинальной COPY команда, которая по сей день, все еще нуждается в /B переключатель, чтобы заставить его на самом деле копировать правильно!