robocopy копировать файлы в новую папку в текущей папке без новой созданной папки - PullRequest
0 голосов
/ 28 мая 2018

Я хочу скопировать ВСЮ папку в новую подпапку.в настоящее время я использую:

(robocopy "C:/Test" "C:/Test/a" /E> output.log)  ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0

после запуска, в папке «C: / Test / a» также находится папка «/ a».я не хочу эту новую папку.

1 Ответ

0 голосов
/ 28 мая 2018

Команда robocopy кажется запутанной, когда нужно скопировать полное дерево каталогов источника, а каталог назначения находится где-то в дереве каталогов источника.Поэтому ваша командная строка приводит к каталогу C:\Test\a\a, который частично содержит материал из источника.

Попробуйте использовать опцию /L (не копировать, а перечислять элементы, которые будут скопированы), поэтому в выходном журнале отображаетсяименно то, что вы ожидаете.Как только вы действительно выполняете копирование (то есть с удаленным /L), в журнале неожиданно появятся еще несколько элементов.Такое поведение указывает на то, что robocopy не оценивает все дерево исходного каталога заранее, но во время фактической операции копирования.

Самый простой способ избежать этого - исключить (повторное) копирование целевого каталога.:

robocopy "C:\Test" "C:\Test\a" /E /XD "C:\Test\a"

Кстати, правильным разделителем пути Windows является \.Хотя robocopy также принимает /, yuo следует придерживаться \, поскольку многие команды неверно интерпретируют /.

...