Предположим, у меня есть следующая структура, и текущим рабочим каталогом является root:

root
    - sub1
         file1.xml
         file2.xml
    - sub2
         file3.css
    - _target
         {is an empty folder}
    run.bat

Я хочу использовать xcopy для копирования sub1 под _target сохраняя структуру. Итак, результат:

- _target
    - sub1
        file1.xml
        file2.xml

Однако, когда я пытаюсь добавить параметры (т.е. любую комбинацию /I , /S , /E) в xcopy я всегда получаю следующее:

- _target
    file1.xml
    file2.xml

Каковы правильные параметры для достижения вышеуказанного (sub1 в _target с его содержимым)?

Я попытался добавить \ в конце как исходной, так и целевой папки, чтобы имитировать магическое поведение Unix cp , но это тоже не помогло.

Обратите внимание, что я ищу решение, которое не излишне дублирует имя папки в аргументах (это то, что я имею в виду под "просто" в заголовке), я знаю, что xcopy sub1 _target\sub1 /I работает!

В качестве последнего средства может быть приемлем robocopy ответ, но я бы предпочел xcopy без дублирования параметра.

1 ответ1

0

Проблема в том, что /S и /E противоречат друг другу. Либо используйте /S (все, кроме пустых папок), либо используйте /E (все, включая пустые папки).

Могу поспорить, что вы хотите использовать /E один, поэтому ваш xcopy будет:

xcopy sub1 _target\sub1 /I /E

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .