Kontrollieren ob Dateien vorhanden sind und wenn nicht kopieren(robocopy)
Hallo,
ich habe 2 Verzeichnise mit etlichen Unterverzeichnise.
Ich wollte diese beide Verzeichnise vergleichen und wenn eine Datei fehlt sollte diese mit Hilfe von Robocopy kopiert werden.
Warum nur neue Dateien hinzugefügt werden sollen?
Ganz einfach es sind Dateien die immer im einen Verzeichnis geändert werden diese aber in dem anderen noch so als Orginal bestehen muss.
Robocopy daher da es zwischen den beiden Verzeichnise auch Verbindungsabbrüche sein könnten und um das ganze nicht nochmal zu ldaen Robocopy.
Ich habe mir jetzt mal Gedanken gemacht und habe gedacht man könnte doch das eine Verzeichnis inkl. Unterverzeichniss in eine Textfile einlesen.
Dies habe ich soweit hinbekommen.
Leider weiß ich jetzt nich mehr weiter wie ich diese Textfile mit dem anderen Verzeichnis vergleichen lässt.
Es müßte ja reintheortisch ausgelesen und verglichen werden.
Hier mal mein aktueller Code:
Wie gehts weiter? oder mache ich es umständlich?
ich habe 2 Verzeichnise mit etlichen Unterverzeichnise.
Ich wollte diese beide Verzeichnise vergleichen und wenn eine Datei fehlt sollte diese mit Hilfe von Robocopy kopiert werden.
Warum nur neue Dateien hinzugefügt werden sollen?
Ganz einfach es sind Dateien die immer im einen Verzeichnis geändert werden diese aber in dem anderen noch so als Orginal bestehen muss.
Robocopy daher da es zwischen den beiden Verzeichnise auch Verbindungsabbrüche sein könnten und um das ganze nicht nochmal zu ldaen Robocopy.
Ich habe mir jetzt mal Gedanken gemacht und habe gedacht man könnte doch das eine Verzeichnis inkl. Unterverzeichniss in eine Textfile einlesen.
Dies habe ich soweit hinbekommen.
Leider weiß ich jetzt nich mehr weiter wie ich diese Textfile mit dem anderen Verzeichnis vergleichen lässt.
Es müßte ja reintheortisch ausgelesen und verglichen werden.
Hier mal mein aktueller Code:
@echo on & setlocal
::Datei Src und Des dir werden angegeben
::
set src_dir=D:\Test
set des_dir=C:\Test
:Source Verzeichnis auslesen
for /f "delims=" %%a in ('dir /b /s /a-d "%src_dir%"') do (
echo %%a >> "C:\test\TEST1.txt")
Wie gehts weiter? oder mache ich es umständlich?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 69790
Url: https://administrator.de/forum/kontrollieren-ob-dateien-vorhanden-sind-und-wenn-nicht-kopierenrobocopy-69790.html
Ausgedruckt am: 23.12.2024 um 14:12 Uhr
4 Kommentare
Neuester Kommentar
Moin Blechengel,
von der Strategie her würde ich es mit XCopy statt mit RoboCopy angehen.
Aber das liegt zum Teil daran, dass ich bei XCopy die Parameter (grob) im Kopf habe und nicht erst in der Doku nachlesen muss - wahrscheinlich ist es mit RobyCopy analog möglich.
Also: XCopy hat drei Schalter, mit denen Du Dein Ziel erreichen kannst:
Einen weiteren Schalter hat XCopy auch noch, der Dir eventuell nützt:
Mimik:
Gruß
Biber
von der Strategie her würde ich es mit XCopy statt mit RoboCopy angehen.
Aber das liegt zum Teil daran, dass ich bei XCopy die Parameter (grob) im Kopf habe und nicht erst in der Doku nachlesen muss - wahrscheinlich ist es mit RobyCopy analog möglich.
Also: XCopy hat drei Schalter, mit denen Du Dein Ziel erreichen kannst:
.....
/EXCLUDE:Datei1[+Datei2][+Datei3]...
Gibt eine Liste von Zeichenfolgen an. Jede Zeichenfolge
sollte in einer einzelnen Zeile in der Datei angezeigt werden.
Wenn eine der Zeichenfolgen Teil des absoluten Verzeichnispfads
der zu kopierenden Datei ist, wird diese Datei vom
Kopiervorgang ausgeschlossen. Beispiel: Bei der
Zeichenfolge \obj\ oder .obj werden alle Dateien
unterhalb des Verzeichnisses OBJ bzw. alle Dateien mit
der Erweiterung .obj vom Kopiervorgang ausgeschlossen.
/L Listet die Dateien auf, die ggf. kopiert werden.
/U Kopiert nur Dateien, die im Zielverzeichnis vorhanden sind.
/Z Kopiert Dateien in einem Modus, der einen Neustart ermöglicht.
Mimik:
- mit "XCopy quelle ziel /s /u /l >%temp%\exclude.lst" eine Liste aller Dateien erzeugen, die es in "quelle" UND in "ziel" gibt.
- Diese in einem 2. Schritt als "excude.lst" angeben - denn die sollen ja NICHT kopiert werden.
....
xcopy quelle ziel /s /L /u >%temp%\exclude.lst
xcopy quelle ziel /s /Exclude:%temp%\exclude.lst /Z
Gruß
Biber