Schließen Sie nur einige Dateien mit demselben Namen aus, wenn Sie mit Robocopy kopieren

15

Ich habe eine Verzeichnisstruktur wie folgt:

folder1\
    help.txt
    folder2\
        help.txt
    folder3\
        help.txt
    ...

Ich möchte den Inhalt folder1 mit kopieren Robocopy . Beispielsweise:

robocopy folder1 destination /E

Ich mag ausschließen , die help.text - Datei , die in folder1 ist aber enthalten die help.txt Dateien in folder2, Ordner3 etc. Es kann auch Dateien help.txt an anderer Stelle in der Verzeichnisstruktur benannt sein , damit ich zu hart nicht haben will Codieren Sie die Pfade zu den einzuschließenden Dateien.

Ich kann den folgenden Befehl verwenden, um alle Dateien mit dem Namen help.txt auszuschließen. Gibt es eine Möglichkeit, die Datei help.txt im Stammverzeichnis von folder1 auszuschließen?

robocopy folder1 destination /E /XF help.txt
Daniel Richardson
quelle

Antworten:

15

Sie müssen den vollständigen Pfad (einschließlich des Laufwerks) zu der auszuschließenden Datei angeben. Relative Pfade funktionieren nicht.

Das funktioniert:

robocopy folder1 destination /E /XF "c:\somedir\another dir\folder1\help.txt"

Das tut nicht:

robocopy folder1 destination /E /XF "folder1\help.txt"

Dies gilt auch nicht für:

robocopy folder1 destination /E /XF ".\folder1\help.txt"
Bis auf weiteres angehalten.
quelle
Sie können mehrere Dateien wie robocopy folder1 destination /E /XF "c:\file1" "c:\file2"
folgt
@ Dennis-Williamson, Danke für diese richtige Antwort. Schade, dass das mit Wildcards nicht funktioniert: robocopy folder1 destination /E /XF "c:\somedir\another dir\folder1\help.txt*"führt zu einem Fehler.
Olivier Faucheux
Nachdem ich 2 Stunden lang andere Befehle ausprobiert hatte, funktionierte dies. Tausend Dank!
Christopher Chipps
0

Ich sehe nicht, dass es eine Möglichkeit gibt, dies mit dem Dateinamen zu tun. Sie können ein Attribut für die nicht zu kopierende Datei festlegen, von der Sie wissen, dass sie sich nicht in anderen Dateien des Quellbaums befindet, und anschließend mit / xa Dateien mit diesem Attribut ausschließen.

Andernfalls müssen Sie jedoch ein anderes Tool verwenden.

Das wird funktionieren:

echo folder1\help.txt > \temp\excl.txt
xcopy /E folder1 destination /EXCLUDE:\temp\excl.txt

Wenn Sie eine Verzeichnisstruktur haben, die so aussieht:

folder1\
  help.txt
  folder1\
    help.txt

es würde wahrscheinlich beide dieser Dateien ausschließen.

wfaulk
quelle
Ich sehe, ich liege falsch.
Wfaulk
0

Sie können% CD% verwenden, um das aktuelle Verzeichnis anzuzeigen. Dies sollte Ihnen helfen, bestimmte Verzeichnisse auszuschließen. Weitere Hilfe finden Sie hier:

/programming//a/5274061

ABC
quelle