XCOPY
COPY
Формат командной строки:
Параметры командной строки:
источник
– Копируемые файлы.
целевой_объект
– Расположение или имена новых файлов.
/A
– Копирование только файлов с установленным архивным атрибутом; сам атрибут при этом не изменяется.
/M
– Копирование только файлов с установленным архивным атрибутом; после копирования атрибут снимается.
/D:m-d-y
– Копирование файлов, измененных не ранее указанной даты. Если дата не указана, заменяются только конечные файлы, более старые, чем исходные.
/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 %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.
Весь список команд CMD Windows
Команда REPLACE
используется для замены одного или нескольких файлов в
командной строке Windows. Применяется в для синхронизации содержимого каталогов и перезаписи только тех файлов, которые изменились позже, чем дата изменения существующих.
Формат командной строки:
Замена файлов на новые:
Параметры командной строки:
/A
– Добавление новых файлов в конечный каталог. Этот ключ несовместим с ключами /S и /U.
/P
– Вывод запроса перед заменой или добавлением файла.
/R
– Разрешение замены файлов, предназначенных только для чтения (среди прочих).
/S
– Замена файлов во всех подкаталогах конечного каталога. Этот ключ несовместим с ключом /A.
/W
– Ожидание вставки диска перед началом выполнения.
/U
– Замена только файлов, более старых, чем исходные. Этот ключ несовместим с ключом /A.
Команда REPLACE не позволяет обновить файлы, имеющие атрибуты ”Скрытый” и ”Системный”.
Примеры использования:
replace /?
– отобразить подсказку по использованию.
replace c:\Folder1\doc2.doc D:\folder2 /A
– добавить файл doc2.doc из каталога Folder1 диска C: в каталог Folder2 диска D:
replace c:\Folder1\*.* D:\folder2 /A
– добавить все недостающие файлы из каталога Folder1 диска C: в каталог Folder2 диска D:
replace c:\Folder1\*.docx D:\folder2 /U
– заменить все файлы с расширением .docx в каталоге Folder2 диска D: на файлы из каталога Folder1 диска C: Выполняется замена только тех файлов, у которых время изменения меньше, чем время заменяющего файла. Данная команда используется для синхронизации содержимого двух каталогов, содержащих одинаковый набор файлов с отличающимся содержимым.
Если исходный и конечный файл имеют одно и то же время модификации, то замена не выполняется. Код завершения ERRORLEVEL устанавливается в 0 независимо от того, выполнялась перезапись конечного файла или нет. При перезаписи, программа выводит на экран сообщение о замене существующего файла:
В случае, когда перезапись не выполняется – сообщение о замене файла отсутствует.
Возможные значения ERRORLEVEL при неудачном выполнении команды:
ERRORLEVEL=3 – не найдены пути исходных или конечных файлов.
ERRORLEVEL=11 – недопустимая комбинация параметров командной строки.
Весь список команд CMD Windows
Команда COPY
COPY
Формат командной строки:
источник
– Имена одного или нескольких копируемых файлов.
/A
– Файл является текстовым файлом ASCII.
/B
– Файл является двоичным файлом.
/D
– Указывает на возможность создания зашифрованного файла
результат
– Каталог и/или имя для конечных файлов.
/V
– Проверка правильности копирования файлов.
/N
– Использование, если возможно, коротких имен при копировании файлов, чьи имена не удовлетворяют стандарту 8.3.
/Y
– Подавление запроса подтверждения на перезапись существующего конечного файла.
/-Y
– Обязательный запрос подтверждения на перезапись существующего конечного файла.
/Z
– Копирование сетевых файлов с возобновлением.
Ключ /Y
можно установить через переменную среды COPYCMD.
Ключ /-Y
командной строки переопределяет такую установку.
По умолчанию требуется подтверждение перезаписи существующих файлов, если только команда COPY
не выполняется в пакетном файле.
По умолчанию, используется копирование файлов как двоичных “один в один”, поэтому параметр
/B
можно не задавать. Параметр /A
необходим, если в результатах копирования
должны обрабатываться специальные символы, применяемые в текстовых файлах.
Ключ /N
используется для совместимости с программами MS-DOS, не поддерживающих длинные имена файлов.
Примеры использования COPY:
copy /?
– выдать справку об использовании команды.
copy file1.txt file2.txt
– копировать файл file1.txt
в файл file2.txt
в текущем каталоге. Если файл file2.txt
существует, то пользователю будет выдан запрос на подтверждение перезаписи существующего файла.
copy /Y file1.txt file2.txt
– то же самое, что и в предыдущем примере, но запрос на подтверждение перезаписи существующего файла не выводится.
copy *.txt D:\oldfiles\*.txt
– копирование всех файлов с расширением txt
из текущего каталога в каталог D:\oldfiles
copy file1.txt + file2.txt +file3.txt file123.txt
– копировать содержимое файлов file1.txt
, file2.txt
и file3.txt
в файл file123.txt
copy C:\ndldr “D:\My Backup\system\ntldr”
– при использовании имен файлов или каталогов,
содержащих пробелы, используются двойные кавычки.
COPY /V file.bin A:\saved.bin
– выполнить копирование файла на дискету A:
с проверкой результата.
Команда COPY
может применяться для копирования файлов с использованием стандартных устройств ввода-вывода:
Copy con myfile.txt
– копирование с устройства con
(console , консоль) в файл myfile.txt
– т.е. ввод символов непосредственно с клавиатуры в файл. Для завершения ввода используется признак конца файла CTRL+Z
(или нажатие F6 )
copy NUL newfile.txt
– копирование с фиктивного устройства nul
в файл, т.е. создание пустого файла с именем newfile.txt
copy movie.avi nul
– копировать файл на фиктивное устройство nul
, т.е. просто чтение файла, иногда используемое в качестве средства тестирования носителей данных.
Весь список команд CMD Windows
Сообщение от kokakolchik
Это строка не нужна, так как кириллица как отображалась кракозябрами, так и будет отображаться, и, более того, ещё и вводимые кириллические значения переменных также будут отображаться кракозябрами. Просто сохраните пакетный файл в кодировке “OEM-866”.
Сообщение от kokakolchik
Зачем вам создавать папку-источник, если копировать из неё нечего?
Сообщение от kokakolchik
Сообщение от kokakolchik
И это всё не нужно (тем более, почти всё ещё и неправильно), так как команда “XCOPY” с ключами “/D” и “/Y” и с обратным слешем после имени папки назначения сама “разберётся” и с созданием целевой папки, и с одинаковыми именами, и с заменой только более старых одноимённых файлов.
Итого в “сухом остатке” вот такой код:
Доброго времени суток.
Сам того не желая столкнулся с проблемой. Будучи мало знаком с языками программирования, мне нужно написать батник, который делал бы следующее:
Есть сеть. На 1 из компьютеров (то есть на моем) в корневой папке программы есть файл с расширение .kml. При редактировании в программе данных этот файл изменяеться. Но изменяеться он только на моем компьютере. А мне надо чтобы этот файл копировался на другие компьютеры. Но чтобы пользователи об этом не знали.
Предложение следующее. Помогите написать батник, который будет копирован на каждый компьютер и изменен.
Изменен так: будет изменено имя батника (чтобы пользователи не знали о его существовании) и думали что они открывают программу. Т.е. нужно чтобы батник сначало делал копирование по сети с моего компьютера на тот с которого он запускаеться (в каждом батнике я изменю путь самостоятельно), и потом запускался .exe данной программы.
Поштудировал интернет и нашел пару исходников, но они мне не сильно помогли. Вот
Не работает.
Исходник был другой
На своем личном компьютере сделал под себя, он мне копировал с диска C на флешку без проблем, но создавал папку по дате и в нее уже копировал файл, но мне это не нужно. мне нужно просто скопировать с заменой
В крайнем случае можно сделать так, чтобы он брал файл с сервера. На сервере мы сделаем какую либо папку, и он будет брать из нее. Т.к. база сейчас будет обновляться редко, каждый раз это делать не обязательно.
Копирует файлы и каталоги, включая подкаталоги.
Описание команды xcopy, параметры, примеры использования.
Параметры
- источник
- Обязательный параметр. Задает местонахождение и имена файлов для копирования. Параметр
должен задавать или диск, или путь. - результат
- Задает место, куда будут скопированы файлы. Параметр может включать имя диска с двоеточием,
имя каталога, имя файла или их комбинацию. - /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
- Копирует по сети в режиме перезапуска.
- /?
- Отображает справку в командной строке.
Примеры
Чтобы копировать все файлы и подкаталоги (включая пустые подкаталоги) с диска A на диск B,
введите:
xcopy a: b: /s /e
Чтобы включить в операцию копирования предыдущего примера системные и скрытые файлы следует
использовать параметр /h
:
xcopy a: b: /s /e /h
Чтобы обновить файлы в каталоге \Reports файлами из каталога \alldata, измененными после 29
декабря 2013 года, введите:
xcopy \alldata \reports /d:29-12-2013
Чтобы обновить файлы предыдущего примера, уже существующие в каталоге \Reports, независимо от
их даты, введите следующую команду:
xcopy \alldata \reports /u
Чтобы получить список файлов, которые были бы скопированы в предыдущем примере, следует ввести
команду:
xcopy \alldata \reports /d:29-12-2013 /l > xcopy.out
Список файлов, которые были бы скопированы, находится в файле Xcopy.out.
Чтобы скопировать каталог \Customer и все подкаталоги \\Public\Address на сетевой диск H,
сохранить у файлов атрибут «только для чтения», введите команду:
xcopy \customer h:\public\address /s /e /k /p
Чтобы выдать предыдущую команду, убедиться, что команда xcopy
создает каталог \Address
и устранить вывод сообщение о создании нового каталога, добавьте параметр /i
следующим
образом:
xcopy \customer h:\public\address /s /e /k /p /i
Поскольку команда xcopy может работать с датами создания (модификации) файла,
ее можно использовать, например, для копирования файлов, созданных (модифицированных) сегодня:
xcopy c:\TEMP D:\vbk\in /D:%date:~3,2%-%date:~0,2%-%date:~8%
Для запуска программы xcopy
и анализа кодов завершения можно создать пакетный файл и
использовать оператор
if
для обработки кодов завершения в случае возникновения ошибок.
Например, следующая пакетная программа использует замещаемые параметры для задания
источника xcopy
и результата:
Эта пакетная программа может быть использована для копирования всех файлов каталога
C:\Prgmcode и его подкаталогов на диск B следующим образом:
copyit c:\prgmcode b:
Где copyit – имя командного файла, текст которого приведен выше.
Командный интерпретатор подставляет C:\Prgmcode вместо параметра %1
и B вместо
параметра %2
, затем использует команду xcopy
с параметрами /e
и
/s
.
Если при выполнении xcopy
произошла ошибка, пакетная программа считывает
код завершения и переходит на метку, указанную в соответствующей инструкции
IF ERRORLEVEL
. В результате на экран выводится сообщение о
характере ошибки и осуществляется выход из пакетной программы.
Следует отметить, что XCOPY предназначена для работы с файлами и каталогами,
но не с устройствами (например, c принтером).
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать
раздел форума
этого сайта (требуется регистрация).
Копирование одного или нескольких файлов из одного расположения в другое.
Параметры
- /d
- Сохранение копируемых шифрованных файлов как расшифрованных в месте назначения.
- /v
- Проверка правильности копирования путем сравнения копий файлов.
- /n
- Использование короткого имени (при наличии) копируемого файла, если его имя превышает 8
символов или его расширение превышает 3 символа. - /y
- Отмена вывода запроса на подтверждение перезаписи существующего конечного файла.
- /-y
- Вывод запроса на подтверждение перезаписи существующего конечного файла.
- /z
- Копирование файлов по сети в режиме перезапуска.
- /a
- Указание текстового файла в формате ASCII.
- /b
- Указание двоичного файла.
- источник
- Обязательный параметр. Задание расположение файла или набора файлов, которые требуется
скопировать. Параметр источник
может состоять из имени диска с двоеточием, имени
папки, имени файла или их комбинации. - назначение
- Обязательный параметр. Задание расположения, в которое требуется скопировать файл или набор
файлов. Параметр назначение
может состоять из имени диска с двоеточием, имени папки,
имени файла или их комбинации. - /?
- Отображение справки в командной строке.
Примеры
Чтобы скопировать файл Memo.doc в файл Letter.doc на текущем диске и убедиться, что символ
конца файла находится в конце скопированного файла, введите следующую команду:
copy memo.doc letter.doc /a
Чтобы скопировать файл Robin.typ с текущего каталога на текущем диске в существующий каталог
Birds на диске C, введите следующую команду:
copy robin.typ c:\birds
Если каталог Birds не существует, файл Robin.typ будет скопирован в файл с именем Birds в
корневой каталог диска C.
Чтобы скопировать несколько файлов в один, перечислите несколько файлов в параметре
источник
, разделяя их имена значком плюс (+), и укажите в параметре назначение
файл, который должен содержать результат объединения этих файлов. Например, чтобы объединить
файлы Mar89.rpt, Apr89.rpt и May89.rpt из текущего каталога на текущем диске и поместить их в
файл Report в текущем каталоге на текущем диске, введите следующую команду:
copy mar89.rpt + apr89.rpt + may89.rpt report
При объединении команда copy
создает конечный файл с текущими датой и временем. Если
параметр назначение
не указан, файлы объединяются и сохраняются в файле с именем
первого файла в списке. Например, чтобы объединить четыре файла в файле Report, если такой
файл уже существует, введите следующую команду:
copy report + mar89.rpt + apr89.rpt + may89.rpt
Кроме того, несколько файлов можно объединить в один с помощью символов подстановки (* или
?). Например, чтобы объединить все файлы с расширением .txt в текущем каталоге на текущем
диске в файл Combin.doc, введите следующую команду:
copy *.txt combin.doc
Если требуется объединить несколько двоичных файлов в один с использованием подстановочных
знаков, воспользуйтесь параметром /b
. В результате CTRL+Z не будет рассматриваться как
символ конца файла в Windows XP. Например, введите следующую команду:
copy /b *.exe combin.exe
- Если объединяются двоичные файлы, результат может оказаться непригодным из-за нарушения
внутреннего форматирования.
В следующем примере команда copy
объединяет каждый файл с расширением .txt с
соответствующим ему файлом с расширением .ref. Результатом является файл с тем же именем, но
с расширением .doc. Таким образом, команда copy
объединит файлы File1.txt и File1.ref
в файл File1.doc, затем файлы File2.txt и File2.ref в файл File2.doc и т. д. Например,
введите следующую команду:
copy *.txt + *.ref *.doc
Чтобы объединить сначала все файлы с расширением .txt, а затем все файлы с расширением .ref в
файл Combin.doc, введите следующую команду:
copy *.txt + *.ref combin.doc
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать
раздел форума
этого сайта (требуется регистрация).
Вот решение с включением информации о счетах в именах файлов
@Echo Off cls Set "BoxIn=Z:\Box_In" Set "Folds="A" "B"" Set "Pref=check" Set /A Max=1000 Set "BoxOut=Z:\Box_In\Total" Set "OutTmp=Z:\Box_In\Total\Tmp" Set "Arc="C:\Program Files\7-Zip\7z.exe" e -o"%OutTmp%"" Set "ArcMask=*.7Z" If Not Exist "%BoxOut%" Md "%BoxOut%" If Not Exist "%OutTmp%" Md "%OutTmp%" Set /A Max1=%Max%-1 FOR %%d IN (%Folds%) Do ( If Not Exist "%BoxOut%\%%~d" Md "%BoxOut%\%%~d" FOR %%f IN ("%BoxIn%\%%~d\%ArcMask%") Do Call :ArcOut "%%~d" "%%~f" "%BoxOut%\%%~d" ) Pause GoTo :Eof rem Формат архива "Расчетный счет 40702810816540044924 от 16082018.7Z" Важна длина хвоста имени :ArcOut Set "NN=%~n2" Set "NN=%NN:~-26% Set "NN=%Pref%_%NN:~22,4%%NN:~20,2%%NN:~18,2%_%~1_%NN:~0,14%_" Echo "%2" %Arc% "%~2" >nul FOR /L %%n IN (1,1,%Max1%) Do ( Set /A MMax=%Max%+%%n FOR %%f IN ("%OutTmp%\%Pref%%%n.*") Do ( Call Move /Y "%%f" "%BoxOut%\%NN%%%MMax:~1%%%%~xf" >nul ) ) Move /Y "%~2" "%~3\" >nul Del /Q "%OutTmp%\*.*" 2>nul GoTo :Eof
Вы помещаете Ваши архивы в соответствующие папки.
Вот, для примера, мои файлы:
Z:\Box_In\A\Расчетный счет 40702810816540044921 от 16082018.7z
Z:\Box_In\A\Расчетный счет 40702810816540044922 от 16082018.7z
Z:\Box_In\A\Расчетный счет 40702810816540044923 от 16082018.7z
Z:\Box_In\B\Расчетный счет 40702810816540044924 от 16082018.7z
Z:\Box_In\B\Расчетный счет 40702810816540044925 от 16082018.7z
Z:\Box_In\B\Расчетный счет 40702810816540044926 от 16082018.7z
Вот мои выходные файлы для примера
После обработки архивы перемещаются в соответствуюжие папки, у меня Z:\Box_In\Total\A Z:\Box_In\Total\B
Z:\Box_In\Total\Tmp очищается, хотя, в принципе, там и без этого ничего не должно было оставаться, если только в Ваших архивах было что-то еще, кроме файлов Check
Как я понимаю, при таком подходе файлов типа check123_1 быть не может, ранее они появлялись из-за того, что в разных архивах имелись разные файлы с одинаковым названием.
Пропишите свои пути и уточните ключи 7Z.