Angenommen, ich habe folgende Struktur und das aktuelle Arbeitsverzeichnis ist root
:
root
- sub1
file1.xml
file2.xml
- sub2
file3.css
- _target
{is an empty folder}
run.bat
Ich möchte benutzen xcopy
Kopieren sub1
unter _target
die Struktur beibehalten. Das Ergebnis ist also:
- _target
- sub1
file1.xml
file2.xml
Wenn ich jedoch versuche, Parameter hinzuzufügen (d. H. Eine beliebige Kombination von /I
. /S
. /E
) zu xcopy
Ich ende immer damit:
- _target
file1.xml
file2.xml
Was sind die richtigen Parameter, um die oben genannten zu erreichen ( sub1
im _target
mit seinem Inhalt)?
Ich habe versucht, etwas hinzuzufügen \
am Ende des Quell- und des Zielordners, um Unix nachzuahmen cp
magisches Verhalten, aber das hat auch nichts geholfen.
Bitte beachten Sie, dass ich nach einer Lösung suche, die den Ordnernamen in den Argumenten nicht unnötig dupliziert ( Das meine ich mit "einfach" im Titel ), Ich weiß das xcopy sub1 _target\sub1 /I
funktioniert!
Als ein letzter Ausweg ein robocopy
Die Antwort mag akzeptabel sein, aber ich würde es wirklich vorziehen xcopy
ohne den Parameter zu duplizieren.
move
funktioniert so bewegen Sie b a, wird das Verzeichnis b nach a verschoben. Aber Sie wissen, es ist eine Problemumgehungmd thedirectory
dann xcopy den Inhalt Ihres Quellverzeichnisses in dieses.dir /ad
Antworten:
Das Problem ist, dass / S und / E einander widersprechen. Verwenden Sie entweder / S (alle außer leeren Ordnern) oder verwenden Sie / E (alle einschließlich leere Ordner).
Ich wette, Sie möchten die / E-Option verwenden, also wäre Ihre Xcopy:
quelle
xcopy sub1 _target\sub1 /I
funktioniert! "... was Sie dazu beitragen/E
hat tatsächlich den Effekt, weil du hinzugefügt hast\sub1
; Deshalb erstellt es das gewünschte Unterverzeichnis./I /S /E
war nur eine von vielen Kombinationen, die ich ausprobierte, das habe ich klargestellt.