
Не могу поверить, что у меня возникли проблемы с копированием каталога в другой каталог через командную строку Windows.
Я хочу сделать простое:
Допустим, у меня есть каталог:
C:\test
и я хочу скопировать тест на диск D: Итак, на диске D должна быть папка следующего вида:
D:\test
когда я использую
robocopy C:\test D:\test \E
В корне диска D оказывается содержимое C:\test, а не каталога с именем test.
Как сделать эту простую вещь?
решение1
Если вы хотите создать точную копию, используйте следующую версию (что эквивалентно добавлению /E и /PURGE):
robocopy c:\source d:\destination /MIR
Если все, что вам нужно сделать, это скопировать каталоги и подкаталоги, включая пустые, используйте
robocopy c:\source d:\destination /E
Вас смущает обратная косая черта в опции E.
Чтобы узнать больше о Robocopy, вот удобный поиск:
решение2
Мне кажется, что использование robocopy
в предыдущих ответах на самом деле не отвечает на вопрос, а именно на копирование исходной папки со всем ее содержимым в папку назначения.
Вот что сработало для меня. Он сохраняет даты создания и регистрирует действия как в файле, так и на экране. Он также повторяет попытки прочитать файл до 5 раз, если он недоступен. Можете свободно изменять флаги в соответствии со своими потребностями.
robocopy 'G:\Some Directory\A ' 'E:\Some Directory\A ' /e /dcopy:T /mt /tee /log:A.log /r:5
Два наблюдения, которые показались мне неочевидными:
- Строки пути должны заканчиваться пробелом, чтобы в месте назначения был создан исходный корневой каталог, а не только его содержимое без содержащего его каталога.
- Корневой каталог в месте назначения должен находиться в пути назначения, даже если он не закрыт до выполнения команды.
- Первоначальная дата создания корневого каталога при этом сохранится.
Я нахожу удивительным, что операция, о которой так часто спрашивают, не документирована должным образом.
решение3
Используйте Robocopy (надежное копирование файлов)
robocopy c:\test d:\test /s /e *.*
/спереключатель для копирования всехподкаталогии /епереключатель предназначен для копирования всехпустые подкаталоги&*.*означает (все файлы).(любые расширения)
синтаксис:
robocopy source-folder destination-folder files switches
Пожалуйста, посетитеэтотссылка для получения дополнительной информации о робокопия.
решение4
Хотя в этом ответе не используется robocopy
, я думаю, что он все равно выполняет задачу копирования каталогов.
Вы можете попробовать использовать:xcopy
Использование:xcopy source [destination] ...
Более подробную информацию вы можете получить, выполнив командускопировать /?
Источник:КАК: скопировать папку в другую папку и сохранить ее разрешения.