Я знаю, что у xcopy есть больше опций, но есть ли какие-либо преимущества в использовании копирования, а не в xcopy?
4 ответа
xcopy - это внешняя программа, а copy - часть интерпретатора (cmd.exe, command.com). Это означает, что xcopy может отсутствовать на другом компьютере или на аварийном диске.
Поскольку у нас есть Windows и спасательные компакт-диски, это больше не проблема.
копия может объединять файлы.
copy file1 + file2 file3
создает файл (file3), который содержит содержимое file1 и file2.
копия может копировать больше, чем просто файлы.
Например,
copy con file
позволяет писать прямо с клавиатуры (консоли) в файл.
Кроме того, вы можете распечатать файл с помощью
copy file prn copy file \\computer\printer
где последний для общих принтеров.
Вы даже можете комбинировать вышеперечисленное: команда
copy con prn
позволяет писать прямо на принтер.
Я думаю, что основное отличие (или было) в том, что xcopy
может копировать иерархии папок, а copy
предназначалось только для работы с файлами.
При этом я не думаю, что есть что-то, что можно было бы получить (с точки зрения функциональности или производительности) от использования copy
.
Обратите внимание, что даже xcopy
устарел по сегодняшним стандартам. Robocopy - это новая утилита копирования на современных платформах Windows.
Также обратите внимание, что все упомянутые утилиты копирования имеют статьи в Википедии, которые могут содержать дополнительную информацию:
Кто-нибудь помнит DOS на двойных гибких ПК? Xcopy минимизирует количество операций чтения, загружая несколько файлов в память за одно чтение, чтобы ускорить копирование. Вероятно, все еще делает тривиальное улучшение скорости с жесткими дисками.
Если вы считаете Powershell "командной строкой", тогда доступна другая команда "копирования". "Копия" Powershell, по-видимому, сопоставляется с командлетом.
Одна вещь, не упомянутая в других ответах, заключается в том, что поскольку Powershell расширяет глубоко внедренный подстановочный знак на уровне оболочки, эта команда будет работать (только из PS, а не из DOS):
% copy G:\git\one\source\*\morePath\SomePattern*.dll destDir
в то время как xcopy утверждает, что "файл не найден", поскольку он принимает один источник.