Разница между xcopy и robocopy
Я новичок в пакетных сценариях. Как новичок, я считаю, что оба они полезны при написании сценариев Каковы ключевые различия между xcopy и robocopy?
5 ответов
Robocopy заменяет XCopy в более новых версиях windows
- использует зеркалирование, XCopy не
- имеет параметр / RH, позволяющий установить время для запуска копии
- имеет параметр /MON:n для проверки различий в файлах
- копирует больше атрибутов файла, чем 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
, который все еще мусор.
не волнуйтесь, это давняя традиция, которая была начата в оригинальной COPY
команда, которая по сей день, все еще нуждается в /B
переключатель, чтобы заставить его на самом деле копировать правильно!