Команда robocopy
кажется запутанной, когда нужно скопировать полное дерево каталогов источника, а каталог назначения находится где-то в дереве каталогов источника.Поэтому ваша командная строка приводит к каталогу C:\Test\a\a
, который частично содержит материал из источника.
Попробуйте использовать опцию /L
(не копировать, а перечислять элементы, которые будут скопированы), поэтому в выходном журнале отображаетсяименно то, что вы ожидаете.Как только вы действительно выполняете копирование (то есть с удаленным /L
), в журнале неожиданно появятся еще несколько элементов.Такое поведение указывает на то, что robocopy
не оценивает все дерево исходного каталога заранее, но во время фактической операции копирования.
Самый простой способ избежать этого - исключить (повторное) копирование целевого каталога.:
robocopy "C:\Test" "C:\Test\a" /E /XD "C:\Test\a"
Кстати, правильным разделителем пути Windows является \
.Хотя robocopy
также принимает /
, yuo следует придерживаться \
, поскольку многие команды неверно интерпретируют /
.