Ich versuche, einen Robocopy- /MOVE
Befehl auszuführen , schließe jedoch einige mit dem /XD
Flag angegebene Unterverzeichnisse aus .
robocopy ".\CurrentDir" ".\NewDir" /XD ".\CurrentDir\SubDir1" ".\CurrentDir\SubDir2" /E /MOVE
Leider ignoriert es die /XD
Option und verschiebt alles. Wenn ich für alles einen absoluten Pfad verwende, funktioniert das einwandfrei, aber ich brauche diesen, um flexibel zu sein. Gibt es eine Möglichkeit, es mit relativen Pfaden zum Laufen zu bringen?
%CD%
Umgebungsvariable verwenden. Beispiel:robocopy ".\CurrentDir" ".\NewDir" /XD "%CD%\CurrentDir\SubDir1" "%CD%\CurrentDir\SubDir2" /E /MOVE
Antworten:
Die angegebenen Ordner
/XD
beziehen sich auf Ordner (zum Ausschließen), die im Quellordner vorhanden sind. Sie geben also nur die Ordnernamen an, die Sie ausschließen möchten, ohne eine übergeordnete Beziehung anzugeben.dh:
quelle
Das Folgende kann hilfreich sein - es behebt das Problem mit dem relativen Pfad direkt -, lässt jedoch viele Ausschlussverzeichnisse und Unterverzeichnisse zu.
Wenn Sie nur Ordner der obersten Ebene ausschließen möchten, verwenden Sie einfach den Ordnernamen - Beispiel APC. Wenn Sie jedoch einen Unterordner erstellen, benötigen Sie den gesamten Pfad. Der Pfad muss vollständig mit dem Quellpfad + Pfad bis zum Unterordner übereinstimmen. Ich habe es auf viele verschiedene Arten getestet und nur so konnte ich es zum Laufen bringen. Dieses Batch- / Cmd-Dateiformat ermöglicht auch Leerzeichen im Pfad oder in den Dateinamen.
quelle