Załóżmy, że mam następującą strukturę i bieżący katalog roboczy to root
:
root
- sub1
file1.xml
file2.xml
- sub2
file3.css
- _target
{is an empty folder}
run.bat
Chcę użyć xcopy
kopiować sub1
pod _target
utrzymanie struktury. Rezultatem jest:
- _target
- sub1
file1.xml
file2.xml
Jednak gdy próbuję dodać parametry (tzn. Dowolną kombinację /I
, /S
, /E
) do xcopy
Zawsze kończę na tym:
- _target
file1.xml
file2.xml
Jakie są prawidłowe parametry do osiągnięcia powyższego ( sub1
w _target
z jego zawartością)?
Próbowałem dodać \
na końcu folderów źródłowych i docelowych, aby naśladować uniks cp
magiczne zachowanie, ale to też nie pomogło.
Proszę zauważyć, że szukam rozwiązania, które niepotrzebnie nie powiela nazwy folderu w argumentach ( to właśnie mam na myśli przez „po prostu” w tytule ), Wiem to xcopy sub1 _target\sub1 /I
Prace!
Jak Ostatnia deska ratunku za robocopy
odpowiedź może być akceptowalna, ale naprawdę wolałbym xcopy
bez powielania parametru.
move
działa tak. move b a, przeniesie katalog b na a. Ale wiesz, że xcopy jest obejściem problemumd thedirectory
następnie skopiuj zawartość swojego katalogu źródłowego do tego.dir /ad
Odpowiedzi:
Problem polega na tym, że / S i / E są ze sobą sprzeczne. Użyj / S (wszystkie, z wyjątkiem pustych folderów) lub użyj / E (wszystkie, w tym puste foldery).
Założę się, że chcesz użyć / E, więc twój xcopy będzie:
źródło
xcopy sub1 _target\sub1 /I
Prace! „… więc to, do czego przyczynisz się/E
faktycznie działa, ponieważ dodałeś\sub1
; dlatego tworzy podkatalog, którego chcę./I /S /E
była jedną z wielu kombinacji, które próbowałem, wyjaśniłem to.