Ich muss eine Robokopie erstellen, um alle Dateien auszuschließen, deren Pfad ein Verzeichnis mit einem bestimmten Namen enthält. Zum Beispiel "bar":
c:\foo\bar\a.txt
c:\bar\c.txt
d:\baz\bar\flub\d.txt
sollte ausgeschlossen werden, aber nicht
c:\foo\barf\b.txt
Hier sind die Dinge, die ich ausprobiert habe - von denen jede von Robocopy abgelehnt wurde:
/XD \bar\
/XD *\bar\*
/XD *^\bar^\*
Irgendwelche Ideen?
Wenn Sie verschiedene Verzeichnisfilter ausprobieren, müssen Sie den Zielordner zwischen den Änderungen löschen!
Ein Problem für mich war, dass ich nicht realisiert habe, dass der Verzeichniswechsel zum Ignorieren auch auf die Zielordner angewendet wird. Ich habe robocopy mit ausgeführt
/MIR
und das Quellverzeichnis geändert, und mein Zielverzeichnis wurde wie erwartet aktualisiert. Dann bemerkte ich, dass ich Archivordner hatte, die ich nicht wollte, also fügte ich hinzu/XD archive
, aber mein Zielordner enthielt immer noch Archivordner!Nachdem
\
ich mit Platzhaltern herumgespielt und die s eingeschlossen / ausgeschlossen hatte , habe ich endlich versucht, den Zielordner zu löschen und das Skript erneut auszuführen - diesmal fehlten die Archivordner! Hier ist der Befehl, den ich ausgeführt habe, wobei die Verzeichnisnamen geändert wurden, um die Unschuldigen zu schützen:quelle
Es tut mir leid, aber gemäß der Dokumentation unter https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy :
Dies bedeutet speziell, dass Platzhalter in dem Flag / xf aber nicht in dem Flag / xd verwendet werden können.
quelle