В чем преимущество копирования по сравнению с xcopy в командной строке?

Ответы:

39
  1. xcopy - это внешняя программа, а copy - часть интерпретатора ( cmd.exe , command.com ). Это означает, что xcopy может отсутствовать на другом компьютере или на аварийном диске.

    Поскольку у нас есть Windows и спасательные компакт-диски, это больше не проблема.

  2. копия может объединять файлы.

    copy file1 + file2 file3
    

    создает файл ( file3 ), который содержит содержимое file1 и file2 .

  3. копия может копировать больше, чем просто файлы.

    Например,

    copy con file
    

    позволяет писать прямо с клавиатуры (консоли) в файл .

    Кроме того, вы можете распечатать файл, используя

    copy file prn
    copy file \\computer\printer
    

    где последний для общих принтеров.

    Вы даже можете комбинировать вышеперечисленное: команда

    copy con prn
    

    позволяет писать прямо на принтер.

Деннис
источник
5
Кроме того, при вызове его на один символ меньше. :)
Orangutech
Вау, спасибо за информацию, касающуюся объединения файлов. Я только что узнал и понял, почему мой файл результатов был таким большим. Ты сделал мой день.
Johnny_D
22

Я думаю, что основным отличием является (или было) то, что xcopyон мог копировать иерархии папок и copyбыл предназначен для работы только с файлами.
Это, как говорится, я не думаю, что есть что-то, чтобы получить (функциональность или производительность) от использования copy.

Обратите внимание, что даже xcopyустарел по сегодняшним стандартам. Robocopy - это новая утилита копирования на современных платформах Windows.

Также обратите внимание, что все упомянутые утилиты копирования имеют статьи в Википедии, которые могут содержать дополнительную информацию:

Der Hochstapler
источник
1

Кто-нибудь помнит DOS на двойных гибких ПК? Xcopy минимизирует количество операций чтения, загружая несколько файлов в память за одно чтение, чтобы ускорить копирование. Вероятно, все еще делает тривиальное улучшение скорости с жесткими дисками.

Билл
источник
1
Риск расщепления волос, строго говоря, не является ответом на этот вопрос, так как он требует выгоды (ов) copyсверх xcopy. Но, IMO, это весомый вклад в дискуссию.
Скотт
0

Если вы считаете Powershell «командной строкой», тогда доступна другая команда «копирования». «Копия» Powershell, по-видимому, сопоставляется с командлетом.

Одна вещь, не упомянутая в других ответах, заключается в том, что, поскольку Powershell расширяет глубоко внедренный подстановочный знак на уровне оболочки, эта команда будет работать (только из PS, а не из DOS):

% copy G:\git\one\source\*\morePath\SomePattern*.dll destDir

в то время как xcopy утверждает, что «файл не найден», поскольку он принимает один источник.

crokusek
источник