используя командную строку, я хотел бы скопировать один каталог в другой. Например есть каталог C:/test
и C:/test2
.
Я хотел бы скопировать C:/test
в, C:/test2
чтобы результат былC:/test2/test
Все , что я нашел до сих пор будет копировать только файлы и папки , содержащиеся в C:/test
в C:/test2
, но листья из родительского каталога.
windows
command-line
Скотт Чемберлен
источник
источник
Ответы:
Попробуйте использовать
XCOPY
с/E
переключателем. Больше информации здесь .У меня не было доступа к этой информации из моего мозга в течение многих лет !
ОБНОВИТЬ
В документации сказано , что она копирует все файлы и подкаталоги из исходного каталога ( это означает , что родительский каталог не создается), так что вы должны создать
test
вC:\test2
первую , а затем использоватьXCOPY
.источник
robocopy /CREATE /COPYALL /DCOPY:T src dst
чтобы просто скопировать папку и пустые файлы, но сохранить все метки времени и другие атрибуты.test
еще должна быть создана.md test
а затем использованиеxcopy
было тривиально очевидно.copy
папка не создает новую папку, а затем копирует содержимое в нее.Вот информация о XCOPY [ 1 , 2 ]
источник
Используйте ROBOCOPY, если вы создаете сценарии резервного копирования. xcopy устарела и, вероятно, будет выведена из употребления в ближайшем будущем. robocopy может делать все, что может xcopy. Это также более гибкий и надежный. Создание сценариев с помощью robocopy поможет им в будущем.
Используйте robocopy для простого копирования папок. Команда robocopy заменяет команду xcopy. Он может быстро копировать целые папки, не заботясь об определении содержимого. Например, чтобы скопировать все содержимое каталога C: \ tools в новую папку D: \ backup \ tools, введите следующее:
Модификатор / e указывает robocopy включить все подкаталоги. Это включает в себя пустые папки. robocopy автоматически скопирует скрытые и системные файлы. Это создаст новые каталоги, если они не существуют в целевом местоположении.
Зеркальное отображение каталога. Зеркальное отображение каталога отлично подходит для создания резервных копий. Опция зеркальной копии robocopy скопирует все содержимое из источника в место назначения. Затем он удалит все, что не существует в источнике. Это гарантирует, что ваша резервная копия содержит только самые последние версии ваших файлов. Например, для зеркального отображения C: \ Users \ Мои документы в D: \ backup \ My Documents введите следующее: [4]
Эта функция сохранит все разрешения исходных файлов.
Включить перезапуск. Вы можете включить возможность перезапустить процесс в случае разрыва соединения в середине копии.
Записать процесс копирования. robocopy позволяет создать файл журнала. Это может помочь вам точно определить проблемы или создать архив того, что было скопировано.
Модификатор / log + добавит существующий файл журнала вместо его перезаписи. Если вы предпочитаете просто перезаписать старый файл журнала, используйте /log:.txt.
источник
Я рекомендую robocopy поверх xcopy , поскольку у него гораздо больше возможностей, включая сохранение временных меток в неизменном виде, что я считаю необходимым.
Robocopy должен быть добавлен в XP / 2003, но он является стандартным начиная с Vista.
На самом деле я обычно использую xxcopy , но 64-битная версия не является бесплатной.
источник
robocopy
программа для Windows Вопрос был о DOS.Например, если вам нужно скопировать
E:
данные сH:
диска на диск (внешний жесткий диск) через командную строку или из командной среды xboot.источник
Если исходный вопрос - это то, на что я искал ответ, то я, и, очевидно, никто из вышеперечисленных, не нашел четкого решения.
То, что я ищу, это скопировать тестовый каталог в каталог test2, не вводя его снова. Что-то вроде
где
d:\test2\test
не существует до копирования, но существует после. Это позволит сэкономить на тесте на опечатку во второй раз в пути назначения. Приведенная выше команда скопирует все файлы и любые каталоги в test2, но не создаст тестовый каталог.До сих пор
действительно единственный способ, который я нашел, чтобы сделать эту работу. Опять же, если у вас есть проблемы с печатью, нет никакой гарантии, что каталоги источника и назначения будут совпадать.
Альтернатива, чтобы исправить это
Это устанавливает каталог назначения в
mydir
переменной, а затем использует эту переменную как в исходном, так и в целевом пути. Если вы введете переменную неправильно, вы либо получите ошибку, либо каталог назначения, вероятно, будет иметь%
начало и конец.Это больше, чтобы набрать, но меньше шансов получить неправильные имена. Они будут заметны.
источник
xcopy /ievy c:\test d:\test2\test
сохранить структуру дерева каталогов, и достаточноset mydir=test&xcopy /isvy c:\%mydir% c:\test2\%mydir%
только 1 & , так как результат установки значения всегда успешен.Где
SWITCHES
можно:Чтобы скопировать всю структуру каталогов:
/hiev
Чтобы перезаписать файлы в месте назначения (если папка назначения уже существует):
/hievry
Для перезаписи, а также копирования с помощью ACL + Attribute:
/hievxok
Наиболее подходит для вашего случая:
xcopy /hievry C:\test C:\test2\test
источник
У меня была похожая ситуация, когда мне нужно было скопировать несколько папок, включая имена папок, в место назначения, и надеялся, что этот вопрос с пометкой «ответил» поможет, но на самом деле это не так.
Во-первых, определенно были случаи, когда кому-то понадобилась бы эта способность, и я столкнулся с ней, когда мне пришлось копировать папки из C: \ Windows \ Assembly \ GAC_MSIL. Проводник Windows отказывается показывать эту папку, поэтому вы должны использовать командную строку.
Если вы знакомы с папкой GAC, вы должны знать, что имена папок нетривиальны, и их легко ошибиться, если вы ошиблись.
Поэтому создание каталога заранее - не вариант, если только вы не используете скрипт, который я в итоге использовал, поскольку это было единственное реальное решение.
Сначала создайте дамп папок, которые вы хотите скопировать во временный файл, обычно это основано на некотором шаблоне, например
Затем переберите записи в дампе и скопируйте их в место назначения. Xcopy позаботится о создании папки, если конечный аргумент завершится обратной косой чертой (\)
Поместите обе эти команды в командный файл и запустите.
Теперь, если только в xcopy или robocopy это встроено.
источник
XCOPY SourceDrive: DestinationDrive: / S / E
источник
/S /E
флаги)Я пришел к функциональному альтернативному ответу на ваш вопрос.
Во-первых, использование
FORFILES
с/S
параметром означает, чтоC:\test
будет достигнут каждый подкаталог в .Во-вторых, с помощью
/C
параметра можно запустить цепочку команд с собственными переменными, что позволяет создавать идентичные каталоги в месте назначения, а затем копировать файлы внутрь них, используя две условные структуры.Первая условная структура
@isdir==TRUE
(обязательно используйте заглавные буквы), позволяет получать каталоги только из источника, затем создавать их по назначениюMKDIR [path]\@relpath
в конце.Наконец, второй проверяет, что он работает только с файлами
@isdir==FALSE
, а затем команда COPY просто выполняет свою работу, получая все файлы, достигнутые командой FORFILES, задавая в[path]@relpath
качестве места назначения, чтобы скопировать файлы в только что созданные каталоги.Надеюсь, это поможет всем здесь.
источник
Это будет сделано из графического интерфейса, не знаю, как они это делают.
«... небольшая программа позволит вам выбрать« из каталога »и« в каталог »и продолжит копировать ТОЛЬКО структуру каталогов.»
http://www.rjlsoftware.com/software/utility/treecopy/
источник