Командный файл который создает две папки и осуществляет копирование файлов
Команда XCOPY используется для копирования файлов и каталогов с сохранением их структуры. По сравнению с командой COPY имеет более широкие возможности и является наиболее гибким средством копирования в командной строке Windows
Формат командной строки:
XCOPY источник [целевой_объект] [/A | /M] [/D[:дата]] [/P] [/S [/E]] [/V] [/W] [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B] [/EXCLUDE:файл1[+файл2][+файл3]. ]
Параметры командной строки:
источник - Копируемые файлы.
целевой_объект - Расположение или имена новых файлов.
/A - Копирование только файлов с установленным архивным атрибутом; сам атрибут при этом не изменяется.
/M - Копирование только файлов с установленным архивным атрибутом; после копирования атрибут снимается.
/D:m-d-y - Копирование файлов, измененных не ранее указанной даты. Если дата не указана, заменяются только конечные файлы, более старые, чем исходные.
/EXCLUDE:файл1[+файл2][+файл3]. - Список файлов, содержащих строки с критериями для исключения файлов и папок из процесса копирования. Каждая строка должна располагаться в отдельной строке файла. Если какая-либо из строк совпадает с любой частью абсолютного пути к копируемому файлу, такой файл исключается из операции копирования. Например, указав строку \obj\ или .obj, можно исключить все файлы из папки obj или все файлы с расширением OBJ соответственно.
/P - Вывод запросов перед созданием каждого нового файла.
/S - Копирование только непустых каталогов с подкаталогами.
/E - Копирование каталогов с подкаталогами, включая пустые. Эквивалентен сочетанию ключей /S /E. Совместим с ключом /T.
/V - Проверка размера каждого нового файла.
/W - Вывод запроса на нажатие клавиши перед копированием.
/C - Продолжение копирования вне зависимости от наличия ошибок.
/I - Если целевой объект не существует и копируется несколько файлов, считается, что целевой объект задает каталог.
/Q - Запрет вывода имен копируемых файлов.
/F - Вывод полных имен исходных и целевых файлов.
/L - Вывод имен копируемых файлов.
/G - Копирование зашифрованных файлов в целевой каталог, не поддерживающий шифрование.
/H - Копирование, среди прочих, скрытых и системных файлов.
/R - Перезапись файлов, предназначенных только для чтения.
/T - Создание структуры каталогов без копирования файлов. Пустые каталоги и подкаталоги не включаются в процесс копирования. Для создания пустых каталогов и подкаталогов используйте сочетание ключей /T /E.
/U - Копирование только файлов, уже имеющихся в целевом каталоге.
/K - Копирование атрибутов. При использовании команды XСOPY обычно сбрасываются атрибуты "Только для чтения".
/N - Использование коротких имен при копировании.
/O - Копирование сведений о владельце и данных ACL.
/X - Копирование параметров аудита файлов (подразумевает ключ /O).
/Y - Подавление запроса подтверждения на перезапись существующего целевого файла.
/-Y - Запрос подтверждения на перезапись существующего целевого файла.
/Z - Копирование сетевых файлов с возобновлением.
/B - Копирование символической ссылки вместо ее целевого объекта.
/J - Копирование с использованием небуферизованного ввода/вывода. Рекомендуется для очень больших файлов.
Ключ /Y можно установить через переменную среды COPYCMD.
Ключ /-Y командной строки переопределяет такую установку.
Примеры использования XCOPY
XCOPY /? - выдать краткую справку по использованию команды.
Что означает D:\copy1:
имя файла или каталога
(F = файл, D = каталог)? D
После ответа D целевой каталог будет создан и копирование будет выполняться в D:\COPY1\. Для подавления запроса на создание целевого каталога используется параметр /I:
xcopy C:\users D:\copy1 /I
xcopy C:\users D:\copy1 /H /Y /C - копирование файлов, включая скрытые и системные, с подавлением запроса на перезапись существующих и возобновлением при ошибке. Если существующий в целевом каталоге файл имеет атрибут "Только чтение", то копирование не выполняется. Для перезаписи таких файлов используется ключ /R
xcopy C:\users D:\copy1 /H /Y /C /R /S - скопировать все файлы и подкаталоги ( /S ) с перезаписью существующих без запроса ( /Y ) , включая скрытые и системные. ( /H ) с перезаписью файлов с атрибутом "Только чтение" (/R) и игнорированием ошибок ( /C )
xcopy C:\users D:\copy1 /H /Y /C /R /S /EXCLUDE:C:\users\listnotcopy.txt - то же, что и в предыдущем случае, но текстовый файл C:\users\listnotcopy.txt задает признаки исключения из процедуры копирования. Пример содержимого файла:
\User1\ - исключить из копирования каталог C:\users\user1
All Users исключить из копирования каталог C:\users\All Users
de*.* - исключить из копирования все файлы и каталоги, начинающиеся на буквосочетание "de"
xcopy C:\users\*.exe D:\copy1 /H /Y /C /R /S /EXCLUDE:C:\users\listnotcopy.txt - то же, что и в предыдущем примере, но выполняется только копирование исполняемых файлов с расширением .exe .
xcopy %TEMP%\*.ini D:\copy1\ini /H /Y /C /R /S /I - копирование всех файлов с расширением .ini из каталога временных файлов в каталог D:\copy1\ini\ . Если целевой подкаталог \ini\ не существует, то он будет создан без запроса пользователю ( /I ) .
xcopy %TEMP%\*.ini D:\copy1\ini /H /Y /C /R /S /I /D:09-16-2013 - то же, что и в предыдущем примере, но выполняется копирование только тех файлов, у которых установлена дата изменения 16 сентября 2013 года и старше.
xcopy C:\ D:\copy1\LISTDIR /H /Y /C /R /S /I /E /T - создать структуру папок диска C: в каталоге D:\copy1\LISTDIR . Копирование файлов не выполняется. Копируются только папки, включая пустые, скрытые и системные.
xcopy C:\ D:\copy1\LISTDIR /H /Y /C /R /S /I /E /T /D:09-16-2013 воссоздать в каталоге D:\copy1\LISTDIR структуру папок диска C: , с датой изменения 16 сентября 2013 года и позже.
Для добавления новых файлов в каталоги и обновления существующих на более поздние версии, можно использовать команду REPLACE.
В разделе Примеры показан принцип использования этой команды.
Синтаксис
Параметры
Комментарии
Использование /z
Если вы потеряли подключение на этапе копирования (например, если сервер переходит в режим «вне сети»), то после повторного подключения Подключение возобновится. /z также отображает процент выполнения операции копирования для каждого файла.
Использование /y в переменной среды копикмд.
В переменной среды КОПИКМД можно использовать параметр /y . Эту команду можно переопределить с помощью /-и в командной строке. По умолчанию выводится запрос на перезапись.
Копирование зашифрованных файлов
Копирование зашифрованных файлов на том, который не поддерживает EFS, приводит к ошибке. Сначала расшифровать файлы или скопировать их на том, который поддерживает EFS.
Чтобы добавить файлы, укажите один файл для назначения, но несколько файлов для источника (то есть с помощью подстановочных знаков или формата file1 + file2 + файл3).
Значение по умолчанию для назначения
Если опустить назначение, команда xcopy скопирует файлы в текущий каталог.
Указание того, является ли назначение файлом или каталогом
Нажмите клавишу F, если хотите скопировать файл или файлы в файл. Нажмите клавишу D, если хотите скопировать файл или файлы в каталог.
Использование команды xcopy для установки атрибута архива для целевых файлов
Команда xcopy создает файлы с установленным атрибутом Archive, независимо от того, был ли этот атрибут задан в исходном файле. Дополнительные сведения об атрибутах файлов и attribсм. в разделе Дополнительные ссылки.
Сравнение xcopy и diskcopy
Если у вас есть диск, содержащий файлы в подкаталогах, и вы хотите скопировать его на диск, имеющий другой формат, используйте команду xcopy вместо команды diskcopy. Так как команда diskcopy копирует диски по дорожке, исходный и целевой диски должны иметь одинаковый формат. Команда xcopy не имеет этого требования. Используйте xcopy , если вам не нужна полная копия образа диска.
Коды выхода для команды xcopy
Для обработки кодов завершения, возвращаемых xcopy, используйте параметр ERRORLEVEL в командной строке If в пакетной программе. Пример пакетной программы, обрабатывающей коды завершения с помощью If, см. в разделе Дополнительные ссылки. В следующей таблице перечислены все коды выхода и их описание.
Примеры
1. чтобы скопировать все файлы и подкаталоги (включая все пустые подкаталоги) с диска A на диск B, введите:
2. чтобы включить в предыдущий пример все системные или скрытые файлы, добавьте параметр командной строки/h следующим образом:
3. чтобы обновить файлы в каталоге \репортс с файлами в каталоге \равдата, которые были изменены с 29 декабря 1993 г., введите:
4. чтобы обновить все файлы, существующие в \репортс в предыдущем примере, независимо от даты, введите:
5. чтобы получить список файлов для копирования с помощью предыдущей команды (т. е. без фактического копирования файлов), введите:
Файл xcopy. out содержит список всех копируемых файлов.
6. чтобы скопировать каталог \кустомер и все подкаталоги в каталог \\публик\аддресс на сетевом диске H:, оставьте атрибут "только для чтения" и при создании нового файла в H: введите:
8. можно создать пакетную программу для выполнения операций xcopy и использовать пакет If для обработки кода выхода при возникновении ошибки. Например, в следующей пакетной программе для параметров источника и назначения xcopy используются заменяемые параметры:
Чтобы использовать предыдущую пакетную программу для копирования всех файлов в каталоге К:\пргмкоде и его подкаталогов на диск B, введите:
9. в этом примере копируются все непустые каталоги, а также файлы, имя которых соответствует шаблону, заданному с помощью символа звездочки.
В предыдущем примере это конкретное значение исходного параметра .\ток *. yml копирует те же три файла, даже если их два символа пути . \ были удалены. Однако файлы не копируются, если из исходного параметра был удален подстановочный знак «звездочка», что делает его просто .\ток.ИМЛ.
и мне нужно все файлы что содержаться в папке batnik, включая подкаталоги в нем, кроме самого avto.bat
скопировать по следующим путям:
c:\avto-mers
c:\avto-123
c:\avto-dodo
e:\avto-sass
e:\avto-2
имя диска может быть разным, начальная часть каталога у всех одинаковая, после чего везде разное имя у нас идет.
Также если у нас внутри каталога уже есть искомый файл и он новее, то мы ничего не копируем.
пробую так, но не выходит
xcopy /y "c:\batnik\avto.bat " "?:\avto-*"
Помощь в написании контрольных, курсовых и дипломных работ здесь
Копирование TXT-файлов из одной папки и BMP-файлов из другой папки в папку, в которой находится пакетный файл
Доброго времени суток. У кого есть возможность сообразить какой код мне нужет чтобы сделать вот.
Копирование нескольких файлов из локальной папки в две сетевые папки с последующим удалением исходных файлов
Есть практическая задача: нужно накидать батник, который будет в определённое время брать из одной.
Копирование: Ввод имени папки и копирование из нее файлов
Доброго времени суток! Реально ли реализовать подобное с помощью bat ? Знаю, что можно создать.
Копирование файла в разные папки с именами в диапазоне от pb001 до pb999
Добрый день! Нужна помощь есть bat-файл копирующий файл (test.txt) в разные директории типа.
я полагаю путей больше, эти не конечные
копировать нужно соблюдая структуру папки или нет и вообще надо взглянуть на нее
написать это напрямую в xcopy неправильно
есть бот все папки по умолчанию создаются как bot и там пользователь может как угодно их переименовать.
они у него эти папки могут быть на любом диске в том числе и путь может быть другой.
c:\bot или c:\Program Files\bot или c:\Program Files 86\bot
если у пользователя несколько разных копий программы, то папки он по умолчанию обзавет как bot-1, bot-2, bot-3 и т.д.
в том числе он может написать имя для папки bot-senya, bot-вася, bot-rick
внутри ботика есть c.zip файл а также папка cache для замены
и во всех папках они присутствуют.
то что скачал пользователь:
c:\batnik\avto.bat
c:\batnik\readme.txt
c:\batnik\с.zip
c:\batnik\cache - папка с файлами.
я незнаю где пользователь сохранил по какому пути нужные мне файлы. поэтому хотелось чтобы копирование было
в похожие папки.
Копировать файлы путем перетаскивания гораздо удобнее и быстрее, чем с помощью традиционного Copy-Paste . Функция Drag-and-Drop также позволяет копировать объекты в разные папки, удерживая при этом зажатой клавишу Ctrl , но как ни крути, это занимает намного больше времени, чем если бы копирование производилось во все выбранные папки одновременно. Представьте, что вам нужно скопировать некий файл во все вложенные папки какого-то каталога, причем количество этих вложенных папок достигает нескольких десятков.
Понятно, что ни Copy-Paste , ни Drag-and-Drop не позволят вам сделать это за минуту, здесь нужен более продвинутый метод.
Для подобных целей существуют специальные программы, но можно обойтись и без них, воспользовавшись самой обычной командной строкой, вернее, командным файлом.
Скопируйте приведенный ниже код и вставьте его в обычный текстовый файл.
В коде скрипта есть два пути C:\Data и D:\Im.jpg , первый — это путь к каталогу со всеми вложенными в него папками, в которые будет копироваться файл, второй — это путь к копируемому объекту, служить которым может не только файл, но и папка.
Замените пути своими и сохраните отредактированный файл с расширением BAT или CMD .
Название скрипта оставляем на ваше усмотрение.
Запустите скрипт и файл будет скопирован в дочерние папки указанного родительского каталога до первого уровня вложенности.
В момент исполнения скрипта на экране появится окошко командной строки и тут же закроется, как только процедура копирования будет завершена. Если вы хотите просмотреть прогресс, добавьте в конец кода командного файла команду pause, это даст вам возможность закрыть консоль вручную нажатием любой клавиши.
Читайте также: