разница между ксерокопией и робокопией

<p>я вроде новичок в пакетных сценариях. как новичок я нахожу их обоих полезными при написании сценариев. каковы основные различия между xcopy и robocopy?</p>

<p>robocopy заменяет xcopy в более новых версиях windows</p><ol> <li>использует зеркальное отображение, xcopy не</li> <li>имеет параметр/rh, позволяющий установить время для запуска копии</li> <li>имеет параметр/mon: n для проверки различий в файлах</li> <li>копирует больше файловых атрибутов, чем xcopy</li> </ol><p>да, я согласен с марком сетчеллом, они оба . (предоставлено вам microsoft)</p><hr><p><strong> update: </strong></p><p>коды возврата xcopy:</p><pre><code>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. </code></pre><p>robocopy возвращает коды:</p><pre><code>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. </code></pre><p>подробнее о возвращаемых значениях robocopy можно узнать здесь: <a href="http://ss64.com/nt/robocopy-exit.html">http://ss64.com/nt/robocopy-exit.html</a> </p>

<p>наиболее важным отличием является то, что <code>robocopy</code> будет (обычно) повторять попытку при возникновении ошибки, а <code>xcopy</code> - нет. в большинстве случаев это делает <code>robocopy</code> гораздо более подходящим для использования в скрипте.</p><p><em> приложение: </em> для полноты информации есть одна известная проблема с edge в случае с robocopy; <a href="https://harryjohnston.wordpress.com/2014/12/11/robocopy-can-silently-fail-to-copy-directories-with-invalid-utf-16-names-or-why-i-always-compare-after-copying/">он может молча копировать файлы или каталоги, имена которых содержат недопустимые последовательности utf-16.</a> если это проблема для вас, вам, возможно, придется взглянуть на сторонние инструменты или написать свои собственные.</p>

<p>различия, которые я мог видеть, в том, что у robocopy гораздо больше вариантов, но я не нашел ни одного из них особенно полезным, если я не делаю что-то особенное.</p><p>я провел несколько тестов на копирование и нашел, что xcopy и robocopy - самые быстрые, но, к моему удивлению, xcopy постоянно вытесняла robocopy.</p><p>ирония в том, что robocopy пытается повторить неудачную копию, но она также часто терпела неудачу в моих тестах производительности, где xcopy никогда не делал.</p><p>я выполнил полное (побайтное) сравнение файлов после моих тестов производительности.</p><p>вот переключатели, которые я использовал с robocopy в моих тестах:</p><pre><code> **"/e /r:1 /w:1 /np /nfl /ndl"**. </code></pre><p>если кто-нибудь знает более быструю комбинацию (кроме удаления/e, которое мне нужно), я бы хотел услышать.</p><p>еще одна интересная/неутешительная вещь, связанная с robocopy, заключается в том, что в случае сбоя копии по умолчанию она повторяется 1 000 000 раз с 30-секундной задержкой между каждой попыткой. если вы запускаете длинный пакетный файл без присмотра, вы можете быть очень разочарованы, когда вернетесь через несколько часов и обнаружите, что он все еще пытается скопировать определенный файл.</p><p>переключатели/r и/w позволяют вам изменить это поведение.</p><ul> <li>с/r вы можете сказать, сколько раз повторить попытку,</li> <li>/ w давайте вам укажем время ожидания перед повторными попытками.</li> </ul><p>если есть способ прикрепить файлы здесь, я могу поделиться своими результатами.</p><ul> <li>все мои тесты проводились на одном компьютере и</li> <li>скопировать файлы с одного внешнего диска на другой внешний,</li> <li>оба на портах usb 3.0.</li> </ul><p>я также включил fastcopy и windows copy в свои тесты, и каждый тест был выполнен 10 раз. обратите внимание, различия были довольно значительными. 95% доверительные интервалы не перекрывались.</p>

<p>больно слышать, что люди все еще страдают от рук * {copy} независимо от версии. я опытный автор сценариев bash и bash, и я рекомендую rsync, вы можете запустить его в cygwin (cygwin.org) или найти несколько исполняемых файлов. и вы можете перенаправить вывод в 2> & 1 в некоторый файл журнала, например out.log, для последующего анализа. удачи людям пришло время снова полюбить жизнь. = м. каан =</p>