Batch Verzeichnis vergleichen, in einer anderes kopieren
Halloo an alle,
ich habe jetzt schon verdammt lange rumprobiert und gegooglet.. aber ich bekomme keine Lösung hin. Folgendes:
Ich möchte QuelleA mit ZielC vergleichen. Sind in QuelleA neue Dateien vorhanden, sollen nur die neuen nach ZielC UND ZielB kopiert werden.
Kann man sowas irgendwie realisieren?
Ich habe es jetzt so: aber es kopiert im letzten Schritt immer alles...
SET QuelleA=C:\Users\Nataria\Desktop\LTP\QuelleA
SET ZielB=C:\Users\Nataria\Desktop\LTP\ZielB
SET ZielC=C:\Users\Nataria\Desktop\LTP\ZielB\ZielC
SET DAT=*.*
SET Rechnung=12345678-*.*
REM Kopieren der aktuellen Dateien und Protokoll schreiben
robocopy "%QuelleA%" "%ZielC%" "%DAT%" /XC /XN /XO /LOG:"%~dp0Logfile.log"
xcopy "%ZielC%" "%ZielB%" /d /s /y
Schon mal vielen Dank!
ich habe jetzt schon verdammt lange rumprobiert und gegooglet.. aber ich bekomme keine Lösung hin. Folgendes:
Ich möchte QuelleA mit ZielC vergleichen. Sind in QuelleA neue Dateien vorhanden, sollen nur die neuen nach ZielC UND ZielB kopiert werden.
Kann man sowas irgendwie realisieren?
Ich habe es jetzt so: aber es kopiert im letzten Schritt immer alles...
SET QuelleA=C:\Users\Nataria\Desktop\LTP\QuelleA
SET ZielB=C:\Users\Nataria\Desktop\LTP\ZielB
SET ZielC=C:\Users\Nataria\Desktop\LTP\ZielB\ZielC
SET DAT=*.*
SET Rechnung=12345678-*.*
REM Kopieren der aktuellen Dateien und Protokoll schreiben
robocopy "%QuelleA%" "%ZielC%" "%DAT%" /XC /XN /XO /LOG:"%~dp0Logfile.log"
xcopy "%ZielC%" "%ZielB%" /d /s /y
Schon mal vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 271705
Url: https://administrator.de/forum/batch-verzeichnis-vergleichen-in-einer-anderes-kopieren-271705.html
Ausgedruckt am: 08.04.2025 um 16:04 Uhr
11 Kommentare
Neuester Kommentar
Guten Morgen!
Wenn du es nicht selbst schreiben willst dann gäbe es hierfür auch TotalCommander (http://www.ghisler.com/deutsch.htm)
Liebe Grüße
ITvortex
Wenn du es nicht selbst schreiben willst dann gäbe es hierfür auch TotalCommander (http://www.ghisler.com/deutsch.htm)
Liebe Grüße
ITvortex
Hallo cappu25!
TotalCommander ist ein zusätzlicher Explorer, der die Funktion bietet 2 Verzeichnisse zu syncronisieren.
http://www.ghisler.com/screenshots/de/08.html
Liebe Grüße
ITvortex
TotalCommander ist ein zusätzlicher Explorer, der die Funktion bietet 2 Verzeichnisse zu syncronisieren.
http://www.ghisler.com/screenshots/de/08.html
Liebe Grüße
ITvortex

Moin cappu,
dafür gibt es in Robocopy einmal den Parameter /A und dann noch /M.
Du machst einfach zwei Robocopy-Befehle einen für das erste und einen für das zweite Ziel.
Beim ersten Befehl nutzt du den Parameter /A (es werden also nur geänderte Dateien mit aktiven Archiv-Attribut übertragen), und beim zweiten Befehl für das zweite Ziel nutzt du den Parameter /M (welcher nach dem kopieren das Archiv-Attribut zurücksetzt).
Natürlich gehts auch einfach mit dem Parameter /E auf beide Ziele. Weis also nicht wo dein Problem liegt ..
Gruß jodel32
dafür gibt es in Robocopy einmal den Parameter /A und dann noch /M.
Du machst einfach zwei Robocopy-Befehle einen für das erste und einen für das zweite Ziel.
Beim ersten Befehl nutzt du den Parameter /A (es werden also nur geänderte Dateien mit aktiven Archiv-Attribut übertragen), und beim zweiten Befehl für das zweite Ziel nutzt du den Parameter /M (welcher nach dem kopieren das Archiv-Attribut zurücksetzt).
1
2
2
/A :: Kopiert nur Dateien mit dem "Archive"-Attribut.
/M :: Kopiert nur Dateien mit dem "Archive"-Attribut und setzt das Attribut zurück.
Natürlich gehts auch einfach mit dem Parameter /E auf beide Ziele. Weis also nicht wo dein Problem liegt ..
Gruß jodel32

Zitat von @cappu25:
SET QuelleA=C:\Users\Nataria\Desktop\LTP\QuelleA\\
SET ZielB=C:\Users\Nataria\Desktop\LTP\ZielB\\
SET ZielC=C:\Users\Nataria\Desktop\LTP\ZielB\ZielC\\
SET DAT=*.*
SET Rechnung=15003122-*.*
robocopy "%QuelleA%" "%ZielC%" "%DAT%" /A /LOG:"%~dp0Logfile.log"
robocopy "%QuelleA%" "%ZielB%" "%DAT%" /M
Aber es kommt bei dem Protokoll ein Fehler, aber er sagt mir nicht welcher?
Schau dir mal deine Pfade an ! Der doppelte Backslash am Ende kommt nicht gut ...SET QuelleA=C:\Users\Nataria\Desktop\LTP\QuelleA\\
SET ZielB=C:\Users\Nataria\Desktop\LTP\ZielB\\
SET ZielC=C:\Users\Nataria\Desktop\LTP\ZielB\ZielC\\
SET DAT=*.*
SET Rechnung=15003122-*.*
robocopy "%QuelleA%" "%ZielC%" "%DAT%" /A /LOG:"%~dp0Logfile.log"
robocopy "%QuelleA%" "%ZielB%" "%DAT%" /M
Aber es kommt bei dem Protokoll ein Fehler, aber er sagt mir nicht welcher?
Und bei /E kopiert er alles in ZielB, statt nur die neuen.
Aber nur beim ersten mal, bei den folgenden Laufen nur noch Dateien die sich in der Quelle geändert haben, deswegen ist es ja Robocopy Und was genau ist das mit diesem Archiv Attribut? Sorry, kenne mich da nicht so aus und würde es gerne verstehen.
Das Archiv-Attribut hat jede Datei im NTFS-Dateisystem, (kannst du im Kontextmenü jeder Datei unter Allgemein > Erweitert nachsehen).Bei der Option /A werden nur Dateien gesichert bei denen das Attribut gesetzt ist, nach dem Lauf aber nicht entfernt. Die Option /M dagegen sichert ebenfalls alle Files mit gesetztem Archiv-Attribut aber nach dem lauf entfernt es das Attribut aus den Quell-Dateien.
Wenn jetzt ein User irgendetwas an einer Datei in der Quelle ändert, setzt Windows automatisch das Archiv-Attribut der Datei. Also werden beim nächsten Sicherungslauf nur Dateien gesichert bei denen das Attribut gesetzt ist und das sind eben nur die die man geändert hat.
Gruß jodel32