2016-05-24 7 views
0

Предположим, что я в каталоге C:\test, где у меня есть каталог C:\test\myHugeFolder и каталог C:\test\backup - и я хотел бы скопировать myHugeFolder в backup от cmd.exe Командная строка.Как скопировать подпапку в подпапку с помощью xcopy?

Итак, я думал, что это использование xcopy правильно, используя относительные пути:

C:\test> xcopy myHugeFolder backup\ /s /e 

Дело в том, xcopy здесь было штамповать, как за 15 минут, а также список каждого файла в myHugeFolder, так что я думал все было хорошо - тогда, когда он закончил, я смотрю backup, и там нет myHugeFolder; на самом деле, когда я искать myHugeFolder, есть только оригинал:

C:\test>dir myHugeFolder* /s 
Volume in drive C has no label. 
Volume Serial Number is FFFF-FFFF 

Directory of C:\test 

18-10-2015 16:26 <DIR>   myHugeFolder 
       0 File(s)    0 bytes 

    Total Files Listed: 
       0 File(s)    0 bytes 
       1 Dir(s) 2.419.708.346.368 bytes free 

Таким образом, очевидно, что это не право командной строки - где я буду неправильно, и что это правильный вызов xcopy сделать этот вид копия?

+1

Ваша команда работает здесь. –

+0

Спасибо @Noodles - я должен был уточнить: теперь я узнал, что с этим вызовом копируется только содержимое, а сама папка не дублируется, что я и хотел (и что команда Unix 'cp -a myHugeFolder backup \ 'сделал бы). – sdaau

+0

Просто FYI, вероятно, вы должны использовать 'robocopy' вместо' xcopy'. Ни один из них не идеален, но «robocopy» имеет больше опций, может справляться с длинными путями и будет повторять попытку, если возникнет ошибка. –

ответ

1

Тест на вопрос неправильный. \ Test \ резервного копирования папку:

C:\test> dir myHugeFolder 

Эта команда ничего не копируется в C список.

Правильный тест больше похож на это:

C:\test> dir backup 

Было бы показать, что содержание C: \ Test \ myHugeFolder был скопирован в C: \ BACKUP, не C: \ тест \ backup \ myHugeFolder.

Если кто-то хотел дубликат C: \ Test \ myHugeFolder в C: \ Test \ Backup \ myHugeFolder, один из способов сделать это будет:

C:\test> XCOPY myHugeFolder backup\myHugeFolder /E /I 

После чего следующая команда покажет нужную копию myHugeFolder контейнера:

C:\test dir backup\myHugeFolder 
+0

Большое спасибо @kbulgrien - я хотел дублировать папку, а не копировать ее содержимое, поэтому мне нужно указать имя целевого каталога и интерпретировать его как имя каталога '/ I'; Спасибо за это. Но мне также нужен переключатель '/ S' для рекурсивного, верно? – sdaau

+0

'XCOPY /?' Help сообщает нам, что '/ E' является' Same as/S/E', поэтому нет, но добавление '/ S' ничего не повредит, если вам станет лучше. – kbulgrien