29

Я знаю, что у xcopy есть больше опций, но есть ли какие-либо преимущества в использовании копирования, а не в xcopy?

4 ответа4

36
  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
    

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

21

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

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

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

0

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

0

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .