Команда XCOPY - копирование файлов и каталогов. Утилиты copy и replace - копирование и замена файлов через командную строку

В отличии от утилиты COPY, команда XCOPY тоже дает возможность скопировать файл через командную строку, но имеет большее количество функции. Однако, стоит отметить, что XCOPY дает возможность работать лишь с файлами и каталогами, но не с устройствами (например, принтер). Но, как всегда, сначала немного лирики…

В былые времена у меня был диск с операционной системой Windows XP Sp1, в то время не было установочных дисков с авто запуском, поэтому приходилось сначала входить в командную оболочку, а уже потом запускать на диске установочный файл. Диск был довольно уже пошарпан, виднелись маленькие дырочки, но как не странно, с помощью старого доброго Волков Коммандера мне удавалось скопировать все файлы через командную строку, хотя и не с первой попытки. Мало того, порой были времена когда система слетала под корень, и мне приходилось вручную производить копирование с одного винта на другой, занимало это сутки…

Командная строка xcopy

XCOPY источник [результат] ] ]

[+ файл 3]...]

Источник – указываем путь к файлу (файлам), который нужно скопировать.

Результат – указываем место, куда нужно скопировать файл через командную строку. Если данный параметр отсутствует, то документы будут дублироваться в текущий каталог.

/V – как и в предшествующей версии, данный параметр отвечает за проверку телесности документов, но, уже не является обязательным, поскольку проверка осуществляется самой системой. Он остался лишь для совместимости с предыдущими версиями MS-DOS.

/EXCLUDE:файл1[+файл 2][+ файл 3]… – позволяет исключить несколько файлов или папок из процесса копирования. Тут все просто, надо только указать имена объектов, которые следует исключить, но, нельзя использовать спецсимволы, типа «*» и «?». Ключи файл1, файл2, … указывают на документы, в которых прописаны строки, каждая строка должна находится в отдельной линии. Если же хоть одна из строк будет совпадать с любой частью абсолютного пути копируемого документа, то скопировать с помощью командной строки данный файл не получится. Допустим в каталоге D:DATA есть три документа с расширением txt: data1.txt, data2.txt и data3.txt. Откроем CMD и пропишем в ней следующие команды:

echo data1.txt>exclude.txt

echo data2.txt>>exclude.txt

В данном примере мы создали в текущем каталоге текстовый документ exlude.txt, в котором прописаны две строчки data1.txt и data2.txt. Символ «>>» отличается от символа «>» только тем, что дописывает данные в конец документа, а не затирает все содержимое новой информацией. Ладно, теперь попробуем выполнить следующие директивы:

XCOPY *.txt D:DATA /EXCLUDE: exclude.txt – в данном примере из текущей папки в папку D:DATA мы скопировали все документы с расширение txt кроме файлов data1 и data2.

Другой пример, если указать строки вида OBJ или.OBJ, то из процесса будут исключены все объекты из папки OBJ и все объекты с расширением.OBJ.

/Z – позволяет дублировать сетевые документы с возобновлением.

Как известно, файловая система приписывает каждому файлу/документу владельца, как правило, это тот пользователь, который создал данный документ. При использовании команд и XCOPY командной строки информация о старом владельце затирается, и владельцем копии становится тот юзер, под учетной записью которого собственно и производилось копирование файлов из командной строки.

и /M – задаем режим для архивных документов. Первый ключ после дублирования объекта оставляет у него атрибут «Архивный», второй же ключ отключает этот атрибут по завершении процесса манипуляций.

/O – данный параметр позволяет скопировать только те данные, которые были изменены не ранее указанной даты (дата у указывается в атрибуте /D[:дата], если сама дата не указана, то копирование будет производиться, только если источник новее результата). Например:

XCOPY "С:My document*.*" "D:RESERVEMy document" /D

Тут будет произведено копирование только тех файлов через командную строку, которые были изменены со времени последнего подобного манипулирования или которых вообще не было в D: RESERVEMy document.

/S – данный ключ указывает, что кроме документов надо произвести и копирование папки, при условии, что она (они) не является пустой.

– данный ключ подобен предыдущему, с той только разницей, что позволяет произвести копирование пустой папки через командную строку.

/W – будет включен режим запроса на нажатие любой клавиши перед началом дублирования.

/C – процесс копирования будет продолжен, даже если произошла ошибка

/I – Данный ключ говорит, что объект назначения должен быть каталогом. Например, если задать ключ /I в команде копирования всех объектов с расширением txt из текущего каталога в несуществующий еще подкаталог TEXT:

XCOPY *.txt TEXT /I

то подкаталог TEXT будет создан без дополнительных запросов.

/Q – этот ключ не будет отображать имена во время процесса

/F – этот ключ будет отображать полные пути источника и результата во время процесса

/L – это ключ всего-навсего отобразит те документы, которые надо скопировать, при этом сам процесс не произойдет.

/H – позволяет дублировать скрытые и системные документы.

/K - заменять объекты с атрибутом “Только для чтения”

/T – создает слепок структуры копируемых папок, но, самих документов не копирует, также не включаются пустые каталоги. Для того чтобы все же включить пустые каталоги и подкаталоги, нужно использовать комбинацию ключей /T /Е .

/U – обновляет содержимое каталога, то есть, копирует лишь те файлы, что уже имеются в каталоге.

/Y и /-Y определяют, нужно ли запрашивать подтверждение перед заменой. /Y означает, что такой запрос нужен, /-Y - не нужен.

/N – копирование с помощью командной строки с использованием сгенерированных коротких имен.

Как уже упоминалось выше, при использовании утилит COPY и XCOPY информация о прежнем владельце затирается. Что бы этого не происходило, можно воспользоваться командой SCOPY из пакета Resource Kit , которая имеет следующий синтаксис:

SCOPY источник [результат]

– позволяет дублировать информацию о владельце

– дублирование информации связанной с аудитом доступа к файлу или каталогу

/S – копирование файлов через командную строку из всех подкаталогов указанного каталога.

Запись в потоки NTFS

И еще, хотелось бы вспомнить о таком понятии как «копирование в потоки». Данный вопрос я частично затронул в статье с примерами по при описании метода объект FileSystemObject. Данная возможность предоставляется только на файловой системе NTFS. В простом варианте суть дела такова, к каждому документу или диску можно привязать свой поток, и записать информацию непосредственно в поток, то есть, информация будет записана, но сам документ не изменит своего размера. Давайте проделаем простенький эксперимент, пропишем в командной строке:

echo “Hellow, word”>new.txt:potok.txt – в данном примере мы создали текстовый документ new.txt, а фразу Hellow, word скопировали в поток potok.txt. Если выполнить команду notepad new.txt, то мы ничего не увидим, но, если выполнить так:

notepad new.txt.potok.txt – то мы увидим заветную фразу Hellow, word.

Командная строка xcopy команда.

При удалении файла, удаляется и поток, привязанный к нему. Есть один довольно примитивный способ узнать, что в нашем якобы пустом документе что-то зашито, это поместить его в архив, как результат, нулевой размер документа увеличится при архивировании.

Для того чтобы полноценно работать с файлами и директориями в командной строке, нам необходимо уметь их создавать, перемещать, копировать и удалять. Для каждого из этих действий есть соответствующая команда.

Хотя, если говорить точно, для переименования файлов и их перемещения используется одна и та же команда, потому что при этом выполняется одна и та же операция редактирования таблицы, в которой директория хранит список файлов, находящихся внутри этой директории.

Работа с файлами в командной строке

Создание файла

Для того чтобы создать файл, можно использовать команду touch . На самом деле, предназначение данной команды — изменение даты последнего доступа к файлу и даты последнего изменения файла.

Выполнение команды без параметров touch путь_до_файла/file обновит у файла дату последнего доступа (last access time) и дату последнего редактирования (last modification time). Если же такого файла не существует, то будет создан пустой файл с указанным в команде именем.

Чтобы обновить только дату доступа, надо использовать параметр ‑a , чтобы только дату изменения — параметр ‑m . Также можно установить не текущую, а произвольную дату, используя параметр ‑t , и указав после него дату в формате MMDDhhmm[.SS] , например, 201203201359.11 , что соответствует 2012 году 03 месяцу 20 числу 13 часам 59 минутам 11 секундам.

Создание директории

Для создания директорий существует команда mkdir (от англ. m ak e dir ectory).

Синтаксис: mkdir имя_директории... , где имя директории — это путь и имя создаваемой директории. Можно указать несколько директорий через пробел.

Если в пути до создаваемой директории присутствуют несуществующие директории, то директория создана не будет, а будет выведено сообщение об ошибке. Для того чтобы создать несколько вложенных друг в друга директорий, используется параметр ‑p . Например, команда:

Mkdir -p folder1/folder2/folder3

создаст все три директории folder1, folder2, folder3 в случае, если они не существуют.

По умолчанию директории создаются с набором прав доступа 755 ; чтобы создать директорию с иным набором прав, используется параметр ‑m права_доступа, например так: mkdir ‑m 750 folder .

Перемещение и изменение имени файла или директории

Имена файлов или директорий хранятся не в самих этих файлах, а являются записями в таблице, которая содержит список с именами файлов и директорий, находящихся внутри этой директории . Таким образом, при переименовании файла или его перемещении в другую директорию выполняется одна и та же операция — редактирование таблицы директории со списком файлов. Поэтому для перемещения и изменения имени файла используется одна и та же команда mv (от англ. m ov e).

Синтаксис команды: mv исходный_файл новый_файл, где исходный файл — это путь до файла или директории и имя файла или директории, которые вы хотите переместить, а новый файл — это путь до места назначения, куда необходимо переместить файл или директорию, и новое имя для перемещаемого файла или директории.

mv /Users/ixrevo/Downloads/hello.txt /Users/ixrevo/Desktop/hi.txt в этом примере мы перемещаем файл hello.txt из директории /Users/ixrevo/Downloads/ на рабочий стол /Users/ixrevo/Desktop/ , а имя перемещённого файла будет hi.txt (содержимое файла останется без изменений).

Учитывая что нашей текущей директорией была /Users/ixrevo/ , можно было бы указать относительный путь к файлу:
cp Downloads/hello.txt Desktop/hi.txt

Подробнее о текущей директории вы можете прочитать в статье «Навигация по файловой системе в командной строке» , а про относительные и абсолютные пути — в статье «Как устроена структура файловой системы Mac OS X» .

Также можно переименовать файл или директорию, не перемещая:

Mv hello.txt hi.txt

Или переместить, не переименовывая:

Mv /Users/ixrevo/Downloads/hello.txt /Users/ixrevo/Desktop/

Для чего необходимо указать только директорию, куда перемещать файл или директорию, без указания нового имени (ну или указать старое имя).

Ещё один способ использования команды mv удобен для перемещения нескольких файлов или директорий: mv исходный_файл_1 исходный_файл_2 ... директория, где исходный файл_1, исходный файл_2 и т.д. — пути и имена файлов или директорий, которые необходимо переместить, а директория — это путь до директории, куда необходимо переместить файлы, указанные ранее.

Копирование файла

Для копирования файлов и директорий существует команда cp , что является сокращением от c op y .

Синтаксис команды: cp исходный_файл новый_файл, где исходный файл — это путь и имя файла, который необходимо скопировать, а новый файл — это путь до создаваемой копии файла и имя этой копии.

Например, выполнив команду:

Cp /Users/ixrevo/Downloads/hello.txt /Users/ixrevo/Desktop/hi.txt

Мы скопируем файл hello.txt из директории /Users/ixrevo/Downloads/ на рабочий стол /Users/ixrevo/Desktop/ , а имя у копии файла будет hi.txt .

Команда cp также позволяет копировать несколько файлов:

Cp исходный_файл_1 исходный_файл_2 ... директория

Исходный файл_1, исходный файл_2 и т.д. — пути до файлов и имена файлов, которые необходимо скопировать, а директория — это путь до директории, куда вы хотите скопировать файлы, указанные ранее.

Копирование директории

Для копирования директорий команда cp используется с параметром ‑R или ‑r (от англ. r ecursive). Команда cp , выполненная с этим параметром, если в качестве первого аргумента была указана директория, скопирует директорию и всё её содержимое, то есть все вложенные директории и файлы.

Синтаксис команды в данном случае выглядит следующим образом:

Cp -r копируемая_директория место_назначения

При попытке скопировать директорию без параметра ‑r , директория скопирована не будет, а будет выведено сообщение об ошибке.

Удаление файла

Для того чтобы удалять файлы, используется команда rm (от англ. r emov e). Синтаксис: rm файл... , где файл — это путь и имя файла, который необходимо удалить. Также можно указать несколько файлов для удаления.

Удаление директории

Существует несколько способов удаления директорий. Например, можно использовать команду

Rmdir директория...

директория — это путь и имя директории, которую необходимо удалить. Также можно указать несколько директорий для удаления.

Если директория не пустая, то есть содержит вложенные файлы и/или папки, то команда rmdir не сможет удалить эту директорию и выдаст сообщение об ошибке.

Аналогично команде rmdir действует команда rm с параметром ‑d .

Конечно, удалять каждый раз сначала содержимое директории, а потом её саму не очень интересно, но, к счастью, есть способ удалить директорию вместе со всем её содержимым. Для этого выполните команду rm с параметром ‑R или ‑r , и тогда все файлы и директории, указанные в команде rm ‑r директория... , будут удалены вместе со всеми вложенными директориями. Но будьте осторожны, не удалите этой командой что-нибудь нужное, особенно учитывая, что в командной строке нет корзины и файлы с директориями удаляются необратимо.

XCOPY копирует файлы и каталоги, включая подкаталоги в командной строке Windows. Это мощная команда для копирования файлов и папок, имеет больше параметров чем простая команда COPY .

Параметры утилиты XCOPY

xcopy источник [результат] ] ] [{/a|/m}] ][+[файл3]] [{/y|/-y}]

  • источник - Обязательный параметр. Задает местонахождение и имена файлов для копирования. Параметр должен задавать или диск, или путь.
  • результат - Задает место, куда будут скопированы файлы. Параметр может включать имя диска с двоеточием, имя каталога, имя файла или их комбинацию.
  • /w - Выводит следующее сообщение с ожиданием подтверждения начала копирования: Нажмите любую клавишу, чтобы начать копирование файлов
  • /p - Запрашивает подтверждение при создании каждого файла-результата.
  • /c - Игнорирует ошибки.
  • /v - Проверяет каждый скопированный файл на соответствие его оригиналу.
  • /q - Отменяет вывод на экран сообщений команды xcopy.
  • /f - Выводит имена исходных файлов и файлов-результатов в процессе копирования.
  • /l - Отображает список копируемых файлов.
  • /g - Создает незашифрованные файлы-результаты.
  • /d[:мм-дд-гггг] - Копирует только файлы, измененные не ранее заданной даты. Если не включить значение мм-дд-гггг, команда xcopy копирует все файлы-источники, которые новее существующих файлов-результатов. Эта возможность позволяет обновлять только измененные файлы.
  • /u - Копирует (обновляет) только те файлы-источники, которые уже существуют в каталоге результата.
  • /i - Если источником является каталог или источник содержит подстановочные знаки и результат не существует, команда xcopy считает, что результат - это имя каталога, и создает новый каталог. Затем xcopy копирует все указанные файлы в новый каталог. По умолчанию команда xcopy запрашивает подтверждение, является ли параметр результат каталогом или файлом.
  • /s - Копирует каталоги и подкаталоги, если они не пусты. Если параметр /s не задан, команда xcopy будет работать только с одним каталогом.
  • /e - Копирует все подкаталоги, включая пустые. Параметр /e используется с параметрами /s и /t.
  • /t - Копирует только структуру подкаталога (т. е. дерево), а не файлы. Для копирования пустых каталогов следует задать ключ /e.
  • /k - Копирует файлы с атрибутом «только для чтения» с сохранением этого атрибута для скопированных файлов, оригиналы которых имеют этот атрибут. По умолчанию команда xcopy удаляет атрибут «только для чтения».
  • /r - Копирует файлы с атрибутом «только для чтения».
  • /h - Копирует системные и скрытые файлы. По умолчанию команда xcopy не копирует системные и скрытые файлы.
  • /a - Копирует только те файлы, которые имеют установленный атрибут «архивный». При использовании параметра /a атрибут "архивный" у исходных файлов не меняется. Сведения об установке атрибутов с помощью команды attrib см. по ссылке «См. также».
  • /m - Копирует только те файлы, которые имеют установленный атрибут «архивный». В отличие от параметра /a, параметр /m очищает атрибут «архивный» у скопированных файлов. Сведения об установке атрибутов с помощью команды attrib см. по ссылке «См. также».
  • /n - Копирует с использованием коротких имен файловой системы NTFS. Параметр /n требуется при копировании из файловой системы NTFS в файловую систему FAT или когда на диске-результате требуется использование соглашения об именах файлов как в файловой системе FAT (8.3). Файлы могут записываться в файловую систему FAT или NTFS.
  • /o - Копирует сведения о принадлежности файлов и избирательной таблице управления доступом (DACL).
  • /x - Копирует сведения о параметрах аудита файла и системной таблице управления доступом (SACL) (подразумевается наличие /p).
  • /exclude:файл1[+[файл2]][+[файл3]] - Определяет список файлов, содежащих строки.
  • /y - Устраняет выдачу запроса на подтверждение перезаписи существующего конечного файла.
  • /-y - Выдает запрос на подтверждение перезаписи существующего конечного файла.
  • /z - Копирует по сети в режиме перезапуска.

Примеры команды XCOPY

Чтобы копировать все файлы и подкаталоги (включая пустые подкаталоги) с диска D на диск E, введите.

Содержимое:

Командная строка Windows – это мощный инструмент, посредством которого можно контролировать систему (без использования проводника). Изучив команды копирования, вы сможете удаленно работать с Windows. Это также полезно, если вы хотите повысить эффективность работы на вашем компьютере.

Шаги

Перед началом

  1. 1 Определите, какую команду использовать. Есть несколько способов копирования файлов через командную строку. Любая команда скопирует файлы, но, возможно, в определенных случаях вы предпочтете какую-то конкретную команду.
    • COPY – это основная команда копирования. Она позволит скопировать, а также объединить файлы.
    • ХCOPY – эта команда позволит скопировать файлы и папки. Также у этой команды есть множество параметров, которые предоставляют повышенный контроль над процессом копирования. Эта команда считается устаревшей, но все равно используется.
    • ROBOCOPY – это новейшая команда копирования, доступная в Windows Vista или более поздней версии. Пользователи Windows XP могут установить пакет, чтобы пользоваться этой командой. Эта команда копирует файлы и папки, сохраняя права доступа и другие атрибуты. Она также предназначена для надежного копирования больших объемов данных.

1 COPY

  1. 1 Скопируйте один файл. Команду copy лучше всего использовать при копировании одного файла. Чтобы использовать эту команду, введите copy источник цель. Например, чтобы скопировать файл example.txt из папки C:UsersDesktop в папку D:Backup, введите следующую команду: copy C:UsersdesktopExample.txt D:ackupExample.txt
    • Необходимо ввести имена копируемого и конечного файлов. Так можно переименовать копируемый файл (если хотите).
    • Чтобы скопировать файл из текущей (активной) папки, просто введите имя файла (вместо «источник»). Например, если в рассмотренном выше примере вы находитесь в папке C:UsersDesktop, то команда копирования будет выглядеть так: copy Example.txt D:ackupExample.txt
  2. 2 Скопируйте все файлы в папке. Для этого используйте групповой символ *.* . Например, чтобы скопировать все файлы из папки C:UsersDesktop в папку D:Backup, введите следующую команду: copy C:Usersdesktop*.* D:ackup
    • Команда copy не копирует скрытые файлы. Для этого используйте команду xcopy или robocopy .
    • Можно скопировать все файлы из текущей (активной) папки, просто введя *.* (вместо «источник»). Например, если в рассмотренном выше примере вы находитесь в папке C:UsersDesktop, то команда копирования будет выглядеть так: copy *.* D:ackup .
  3. 3 Скопируйте файлы, если в именах файлов или папок (начальных или конечных) присутствуют пробелы. В этом случае заключите пути к файлам/папкам в кавычки. Например, чтобы скопировать все файлы из папки C:UsersMy Documents в папку D:2015 Backup, введите команду: copy "C:UsersMy Documents*.*" "D:2015 Backup"
  4. 4 Объедините текстовые файлы. Команда copy может объединять любые файлы, но это особенно полезно в случае с текстовыми файлами. Благодаря следующей команде тексты из первого и второго файлов будут объединены в одном новом файле. copy file1.txt+file2.txt newFile.txt
    • Эта команда предполагает, что файлы file1.txt и file2.txt находятся в текущей (активной) папке. Если это не так, вводите имена файлов с полными путями к ним.

2 XCOPY

  1. 1 Скопируйте один файл. Чтобы скопировать один файл, лучше пользоваться командой copy . Команда xcopy не позволит указать, задаете ли вы в качестве места назначения папку или файл.
  2. 2 Используйте команду robocopy , если вы создаете скрипты резервного копирования. Команда xcopy устарела и, вероятно, выйдет из употребления в ближайшем будущем. Команда robocopy умеет делать все, что делает команда xcopy .
  3. 3 Скопируйте папку. Основное применение команды xcopy – это копирование папок. Например, чтобы скопировать папку C:Tools в новую папку D:BackupTools, введите следующую команду: xcopy C: ools* D:ackup ools /e /i
    • Параметр /e сообщает команде xcopy , что необходимо скопировать все подпапки (включая пустые подпапки).
    • Параметр /i сообщает команде xcopy , что местом назначения является папка. Таким образом, команда автоматически создаст новую папку.
    • Эта команда наиболее полезна при копировании файлов с CD/DVD-диска. Она также автоматически снимет атрибут «Только для чтения».
  4. 4 Скопируйте скрытые файлы. Одним из самых больших преимуществ xcopy над copy является возможность копировать скрытые и системные файлы. Добавьте параметр /h , чтобы скопировать скрытые файлы. xcopy C: ools* D:ackup ools /e /i /h

3 ROBOCOPY

  1. 1 При помощи команды robocopy легко копировать папки. Команда robocopy заменяет команду xcopy . Например, чтобы скопировать папку C:Tools в новую папку D:BackupTools, введите следующую команду: robocopy C: ools D:ackup ools /e
    • Параметр /e сообщает команде, что необходимо скопировать все подпапки (включая пустые подпапки).
    • Эта команда автоматически копирует скрытые и системные файлы. Она автоматически создает новые папки, если их нет в указанном месте назначения.
  2. 2 Отзеркаливание директории. Оно отлично подходит для создания резервных копий. В этом случае команда robocopy скопирует все содержимое из источника в указанное место назначение. При этом любой контент, хранящийся в месте назначения, но которого нет в источнике, будет удален. Это гарантирует, что резервная копия будет иметь только последние версии файлов. Например, чтобы отзеркалить директорию C:UsersMy Documents в папке D:BackupMy Documents, введите: robocopy "C:UsersMy Documents" "D:ackupMy Documents" /mir
    • Эта команда сохранит все разрешения исходных файлов.
  3. 3 Включите перезапуск. Можно включить перезапуск копирования, если что-то произошло в процессе предыдущего копирования. robocopy "C:UsersMy Documents" "D:ackupMy Documents" /z
  4. 4 Запишите процесс копирования. Команда robocopy позволяет создавать журналы процессов копирования. Это поможет вам определить источник проблем с копированием или создать архив со списком скопированного контента. robocopy "C:UsersMy Documents" "D:ackupMy Documents" /log+:.txt
    • Параметр /log+ добавит информацию в существующий журнал (без удаления предыдущих записей). Если вы хотите перезаписать старый журнал, используйте /log:<имя_файла>.txt .

И в данном посте я рассмотрю замену и копирование файлов через командную строку, а именно, утилиты COPY и REPLACE. Но сперва, как всегда немого лирики.

Пожалуй, любой программист сталкивался с вопросом написания функции для копирования каталога с файлами. Как правило, эти задачи решались при использовании рекурсии. В былые времена, не было мышки и правого клика со вкладкой «копировать, вырезать, вставить», да и синий Волков не сразу появился. Это теперь все так привычно, сидишь за клавиатурой, втыкаешь в зеленое поле Винды, клик туда, клик сюда, и все, задачу решил. Но, бывали и трудные ситуации, когда приходилось прибегать к синему менеджеру. Как не странно, но командная строка и ее утилиты от версии к версии меняют свой вид, Есть даже целый набор утилит типа PsUtils, которые эффективней стандартных ДОСовских. Логический вопрос, кому это все надо! Какой смысл изобретать современного динозавра, йоп те! С другой стороны, такова наша природа человеческая, мы готовы даже велосипед снова изобрести, лишь бы занять свой ум.

Командная строка COPY

Данный шедевр человеческой мысли позволяет произвести копирование (copy) через командную строку файла или файлов или даже их конкатенацию (объединение). Для решения подобных задач север сценариев предоставляет в распоряжение метод объекта FileSystemObject. Синтаксис утилиты командной строки copy, довольно устрашающий:

COPY источник [+ источник [+ ...]] [результат ]

Давайте начнем:

/D – указывает на возможность создания зашифрованного файла.

/Y | /-Y – если выбран первый параметр, то будут отсутствовать запросы системы на подтверждение во время копирования (проще говоря, если придется топкой 1000 файлов копировать, то на каждый не будет выпрыгивать надоедливое “а вы уверены, или, может, другу позвоните? ”), понятно, что второй параметр как раз то включает запрос подтверждения.

/Z – позволяет копировать данные по сети, кстати, в предыдущих вариантах данной утилиты этого ключа не наблюдалось.

– указывает, что файл является текстовым, если мы укажем данный параметр, то копирование прервется на метке конца файла ASCII код 26.

Если же данный параметр указан в самом конце, то эффект совсем другой. Произойдет полное копирование документа, но в копии будет добавлена метка конца файла если ее не было. Как результат, можете попробовать поэкспериментировать с pdf документом (my_file.pdf – размер документа составляет 247217 байт):

copy my_file.pdf/A new_file.pdf – на выходе мы получим документ new_file.pdf размером в 2538 байт.

/B – данный ключ идет по умолчанию и указывает, что файл является бинарным. То есть, происходит копирование всего документа.

/V – данный параметр включает проверку правильности копирования, сравнивая данные после завершения процедуры.

И так командная строка, копирование файлов и парочка примеров:

Копирование через командную строку файла 123.txt из текущего каталога в каталог D:\NEW под тем же именем:

COPY 123.txt D:\NEW

Копирование файла 123.txt из текущего каталога в каталог D:\NEW под новым именем new.txt:

COPY 123.txt D:\NEW\new.txt

Копирование всех документов с расширением txt с диска D:\ в каталог My Data на диске C:

COPY D:\*.txt "С:\My Data"

Допустим, мы находимся в каталоге D:\NEW и нам надо копирнуть в него все данные из каталога C:\DATA, в таком случае достаточно прописать следующий синтаксис:

COPY C:\DATA *.*

Используя командную строку, копируемые файлы можно склеить. Для этих целей достаточно использовать знак плюса «+», например:

COPY 1.txt +2.txt 3.txt – в данном примере содержимое документов 1.txt и 2.txt было объединено в 3.txt. Стоит помнить, что по дефолту, утилита COPY воспринимает данные как текстовые.

Вот пример с двоичными данными:

COPY /В *.dat all.dat – в данном варианте все данные с расширением dat из текущей папки были объединены в один файл all.dat.

Вообще, используя символ плюса «+» и мысли типа «а что если», можно проделать парочку экспериментов. Также стоит помнить ряд моментов:

Если название целевого объекта совпадает с одним из копируемых (кроме первого), то исходное содержимое целевого объекта будет утеряно.

Если имя целевого объекта опущено, то в его качестве будет использован первый объект из списка:.

COPY 1.txt +, – данная конструкция позволяет присвоить объекту 1.txt текущую дату без его модификации.

Утилита COPY по своему первенству содержит ряд недостатков:

  • нельзя производить копирование файлов через командную строку с атрибутами скрытый или системный, а также системных и с атрибутом «Только для чтения».
  • обрыв всего процесса копирования при встрече с объектом, который в данный момент не поддается копированию.

В связи с такими неудобствами, умные люди подумали, и прибавили букву Х к названию COPY, чем решили массу проблем, создав .

Командная строка REPLACE

Фактически, отличие данной утилиты в том, что она умеет заменять данные. Синтаксис довольно простой и понятный:

REPLACE [диск1:][путь1]имя_файла [диск2:] [путь2]

REPLACE [диск1:][путь1]имя_файла [диск2:] [путь2]

[диск1:] [путь1]имя_файла – определяем местонахождении копируемого объекта, или объектов.

[диск2:] [путь2] - определяем местонахождении объекта-результата. Как видно, имена замещаемых объектов задавать нельзя.

– добавляем в каталог-результат только новые объекты из каталога-результата (без перезаписи). Этот ключ нельзя использовать с ключами /S и / U .

– выводится запрос на подтверждение перед заменой целевого или добавлением исходного файла.

/R – замещение не только обычных, но и защищенных от записи документов.

/S – позволяет производить поиск по всем подкаталогам целевого каталога и заменять файлы с совпадающими именами. Этот ключ нельзя использовать совместно с ключом . Поиск в каталогах, заданных параметром путь1, не производится.

/W – ожидание вставки диска перед началом выполнения

/U – режим обновления, то есть будут заменены только те объекты, которые имеют более раннюю дату модификации. Несовместимость с ключом /A .

Replace D:\Data\my_file.txt D:\Work – в папке Work заменяем файл my_file.txt на D:\Data\my_file.txt

При копировании файлов через командную строку посредством утилиты REPLACE, отсутствует возможность обновления скрытых или системных файлов. Для этого надо предварительно сменить их атрибуты.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: