При работе в командной строке (cmd) часто возникает необходимость скопировать файл или целую папку. Также консольные команды для копирования могут использоваться в BAT-файлах для резервного копирования и других задачах.
В этой статье мы расскажем о том, как скопировать файл или папку в командной строке Windows. Статья будет актуальной для всех версий Windows, включая самые новые Windows 11 и Windows 10.
Содержание
Как скопировать файл через командную строку Windows
Для копирования файлов в командной строке Windows нужно использовать команду «copy». Данная команда позволяет скопировать один или несколько файлов из одной папку в другую. Обратите внимание, команда «copy» копирует только файлы. Для копирования вложенных папок нужно использовать команду «xcopy», которую мы рассмотрим ниже.
В самом простом случае команда для копирования файлов выглядит так:
copy [исходный файл] [новый файл или папка назначения]
Например, чтобы скопировать файл «file1.txt» из текущего каталога в папку «e:\tmp» нужно выполнить:
copy file1.txt e:\tmp
При необходимости для копируемого файла можно указать новое название в папке назначения. Например, чтобы скопировать «file1.txt» из текущего каталога в папку «e:\tmp» и при этом назвать его «newfile.txt» нужно выполнить:
copy file1.txt e:\tmp\newfile.txt
С указанием полных путей команда копирования будет выглядеть так:
copy d:\tmp\file1.txt e:\tmp\file.txt
Для копирования большого количества файлов в названиях можно использовать маски. Символ звездочка (*) обозначает любое количество любых символов, а знак вопроса (?) – один любой символ. Например, чтобы скопировать все документы с расширением TXT из текущего каталога в папку «e:\tmp\» нужно выполнить следующее:
copy *.txt e:\tmp\
Также с помощью команды «copy» можно скопировать все содержимое одной папки в другую. Например, в случае копирования всех файлов из папки «d:\tmp\» в папку «e:\tmp» команда будет выглядеть так:
copy d:\tmp\ e:\tmp
В данном случае из папки «d:\tmp\» будут скопированы только файлы. Для копирования вложенных папок нужно использовать «xcopy».
Полный синтаксис команды «copy» выглядит так:
copy [/d] [/v] [/n] [/y | /-y] [/z] [/a | /b] <source> [/a | /b] [+<source> [/a | /b] [+ ...]] [<destination> [/a | /b]]
Полный список параметров для команды «copy»:
Параметр | Описание |
/d | Сохранение копируемых зашифрованные файлов в расшифрованном виде в месте назначения. |
/v | Проверка правильности записи скопированных файлов. |
/n | Использование короткого имени файла (если доступно) при копировании файла с именем длиннее восьми символов или с расширением длиннее трех символов. |
/y | Подавление запроса на подтверждение перезаписи. |
/-y | Вывод запроса на подтверждение перезаписи. |
/z | Копирует сетевые файлы в перезапускаемом режиме. |
/a | Копирование текстового файла ASCII. |
/b | Копирование двоичного файла. |
<source> | Указывает расположение, из которого необходимо скопировать один или несколько файлов. Обязательный параметр. |
<destination> | Указывает расположение, в которое необходимо скопировать файл или несколько файлов. Обязательный параметр. |
/? | Отображение справки в командной строке. |
Большинство параметров указываются в начале, сразу после команды «copy». Например, для того чтобы подавить вывод запросов на перезапись существующих файлов можно добавить параметр «/y».
copy /y file1.txt file2.txt
Как скопировать папку через командную строку Windows
Для копирования папок с вложенными папками и файлами в командной строке Windows нужно использовать команду «xcopy». Данная команда позволяет скопировать папку из одного расположение в другое с сохранением структуры каталогов. Фактически «xcopy» — это более продвинутая версия команды «copy».
В упрощенном виде синтаксис команды «xcopy» будет выглядеть так:
xcopy [исходная папка или файл] [папка назначения или файл] [параметры]
Для копирования папок с вложенными папками и файлами нужно использовать параметр «/s» или «/e». Без этих параметров команда будет работать только с одним каталогом.
Параметр | Описание |
/s | Копирование каталогов с подкаталогами (исключая пустые) |
/e | Копирование каталогов с подкаталогами (включая пустые). |
Например, для того чтобы скопировать все файлы и вложенные папки (включая пустые) из папки «d:\tmp» в папку «e:\tmp» нужно выполнить:
xcopy d:\tmp e:\tmp /e
Полный синтаксис команды «xcopy» выглядит так:
xcopy <Source> [<Destination>] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d [:MM-DD-YYYY]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a | /m}] [/n] [/o] [/x] [/exclude:FileName1[+[FileName2]][+[FileName3]]] [{/y | /-y}] [/z] [/b] [/j]
Полный список параметров для команды «xcopy» можно посмотреть на сайте Майкрософт. Здесь же приведены только некоторые самые базовые:
Параметр | Описание |
/s | Копирование каталогов с подкаталогами (исключая пустые) |
/e | Копирование каталогов с подкаталогами (включая пустые). |
/w | Вывод запроса на подтверждения начала копирования. |
/p | Запрос подтверждение при создании каждого нового файла. |
/c | Пропуск ошибок. |
/v | Проверка всех скопированных файлов на соответствие его исходнику. |
/q | Скрывает вывод информации от команды xcopy. |
/f | Вывод имен в процессе копирования. |
/l | Вывод списка копируемых файлов. |
/g | Сохранение новых файлов в незашифрованном виде. |
/d[:мм-дд-гггг] | Копирование файлов, которые были измененные не ранее указанной даты. Если не указать дату (мм-дд-гггг), то команда xcopy будет копировать все файлы, которые новее существующих. |
/u | Обновление только существующих файлов в папке назначения. |
/y | Подавление запроса на подтверждение перезаписи. |
/-y | Вывод запроса на подтверждение перезаписи. |
/z | Копирует сетевые файлы в перезапускаемом режиме. |
/h | Копирование скрытых и системных файлов. |
/r | Перезапись файлов с атрибутом «только для чтения». |
/t | Создание структуры каталогов без копирования файлов. Пустые каталоги не включаются в структуру. Для включения пустых каталогов нужно добавить параметр /E. |
<source> | Указывает расположение, из которого необходимо скопировать один или несколько файлов. Обязательный параметр. |
<destination> | Указывает расположение, в которое необходимо скопировать файл или несколько файлов. Обязательный параметр. |
/? | Отображение справки в командной строке. |
Параметры указываются в конце команды. Например, для того чтобы скопировать все файлы (включая скрытые, системные и только для чтения) и вложенные папки (включая пустые) из папки «d:\tmp» в папку «e:\tmp» нужно выполнить:
xcopy d:\tmp e:\tmp /e /h /r
Спасибо!
xcopy копирует только содержимое папки а можно скопировать папку целиком?
как к имени файла добавить системную дату
Можно использовать переменную %date%. Например, так:
Но, в зависимости от настроек компьютера в переменной %date% может появляться слеш, это нужно проверять.
Возможно для такого лучше использовать PowerShell, там больше различных способов для решения таких задач.
……..
Добрый день. Подскажите. как скопировать все содержимое папки, но одна папка не должна копироваться
Как сделать это в bat файле
пишет Отказано в доступе
у меня тоже пишет Отказано в доступе, не нашел способа ?
«Запуск от имени Администратора» пробовали?