Verzeichnisse und Unterverzeichnisse per cmd vergleichen
HI @ all
ja es gibt schon ein paar Beiträge zu diesem Thema aber
die meisten Antworten waren nicht zu gebrauchen,
da sie auf Programme mit einer GUI Verwiesen.
So jetzt zum Problem:
Ich Brauche ein CMD Programm dass Verzeichnisse inkl. Unterverzeichnisse Binär ver-gleicht und ein Protokoll erstellt welches eine Zusammenfassung beinhaltet. (alá Robocopy)
THX im Voraus
ja es gibt schon ein paar Beiträge zu diesem Thema aber
die meisten Antworten waren nicht zu gebrauchen,
da sie auf Programme mit einer GUI Verwiesen.
So jetzt zum Problem:
Ich Brauche ein CMD Programm dass Verzeichnisse inkl. Unterverzeichnisse Binär ver-gleicht und ein Protokoll erstellt welches eine Zusammenfassung beinhaltet. (alá Robocopy)
THX im Voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 36641
Url: https://administrator.de/contentid/36641
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
12 Kommentare
Neuester Kommentar
Rückfrage, Jason,
was ist denn denn das Ziel bzw. das erwartetete Ergebnis der ganzen Aktion?
Wenn die zwei zu vergleichenden Verzeichnisse samt Unterverzeichnissen inhaltlich auseinander laufen/ nicht synchron sind --> dann ist ein Binärvergleich Unsinn. Da gibt es Sync-Tools dafür.
Ein Binär-Vergleich kann nur funktionieren, wenn die beiden zu vergleichenden Dateien gleich groß sind und die Unterschiede "zählbar" wenige sind.
Für den Fall, dass Du wirklich eine Aufgabenstellung hast sinngemäß in der Art, dass Du den Inhalt zweier eigentlich identischer CDs vergleichen willst, also nicht wirklich mit Unterschieden rechnest, dann kannst Du Dir einen Einzeiler mit FOR /R ..IN..DO und dem FC.exe-Utility zusammenbraten.
Eine vorgeschaltete FOR-Anweisung ist nötig, weil FC.exe keine Unterverzeichnisse rekursiv verarbeiten kann.
Aber skizziere doch bitte erstmal das Szenario - für asynchrone Verzeichnisstrukturen z.B. wären Sync-Utilities oder Konstrukte mit "XCopy /L" sinnvoller.
Gruß
Biber
was ist denn denn das Ziel bzw. das erwartetete Ergebnis der ganzen Aktion?
Wenn die zwei zu vergleichenden Verzeichnisse samt Unterverzeichnissen inhaltlich auseinander laufen/ nicht synchron sind --> dann ist ein Binärvergleich Unsinn. Da gibt es Sync-Tools dafür.
Ein Binär-Vergleich kann nur funktionieren, wenn die beiden zu vergleichenden Dateien gleich groß sind und die Unterschiede "zählbar" wenige sind.
Für den Fall, dass Du wirklich eine Aufgabenstellung hast sinngemäß in der Art, dass Du den Inhalt zweier eigentlich identischer CDs vergleichen willst, also nicht wirklich mit Unterschieden rechnest, dann kannst Du Dir einen Einzeiler mit FOR /R ..IN..DO und dem FC.exe-Utility zusammenbraten.
Eine vorgeschaltete FOR-Anweisung ist nötig, weil FC.exe keine Unterverzeichnisse rekursiv verarbeiten kann.
Aber skizziere doch bitte erstmal das Szenario - für asynchrone Verzeichnisstrukturen z.B. wären Sync-Utilities oder Konstrukte mit "XCopy /L" sinnvoller.
Gruß
Biber
Na, Jason,
dann würde ich (weil mir nur eventuelle Diskrepanzen wichtig wären) folgende Strategie wählen:
Jeder Server, von dem Du Daten/Verzeichnisse kopierst, kopiert ja in ein bestimmtes Zielverzeichnis, meinetwegen "d:\Sicherungen\Server87" oder ähnliches.
Nach der Kopiererei, mit was auch immer, weist Du diesem jeweiligen Sicherungsverzeichnis einen Laufwerksbuchstaben zu mit Subst.
Und dann folgt eine Zeile.
Lässt sich natürlich noch beliebig verfeinern, aber von der Strategie her war es das.
Wenn Du aus Jäger- und Sammlergründen auch alles protokollieren willst, was 1:1 angekommen ist, kannst Du von diesem Ziellaufwerk Z:\ ja auch noch eine Dateiliste mit "DIR /b /S Z:\*.*>>d:\logs\server87.log" hinterherschieben.
Gruß
Biber
dann würde ich (weil mir nur eventuelle Diskrepanzen wichtig wären) folgende Strategie wählen:
Jeder Server, von dem Du Daten/Verzeichnisse kopierst, kopiert ja in ein bestimmtes Zielverzeichnis, meinetwegen "d:\Sicherungen\Server87" oder ähnliches.
Nach der Kopiererei, mit was auch immer, weist Du diesem jeweiligen Sicherungsverzeichnis einen Laufwerksbuchstaben zu mit Subst.
Und dann folgt eine Zeile.
....
...[die eigentliche Sicherung von \\Server87\c$ nach d:\Sicherungen\87 ist gelaufen....]
Subst Z: d:\Sicherungen\Server87
for /R Z:\ %%i in ("*.*") do @FC "%i" "\\Server87\c$\%%~pnxi" >nul || echo Nicht identisch: %%i >>d:\logs\Server87.log
..
Wenn Du aus Jäger- und Sammlergründen auch alles protokollieren willst, was 1:1 angekommen ist, kannst Du von diesem Ziellaufwerk Z:\ ja auch noch eine Dateiliste mit "DIR /b /S Z:\*.*>>d:\logs\server87.log" hinterherschieben.
Gruß
Biber
Moin Jason,
danke für die Rückmeldung.
Beyond Compare kenne ich auch (eine etwas ältere Versionen wahrscheinlich) und fand es damals auch ein ganz brauchbares Tool. Habe ich dann aber irgendwie aus den Augen verloren.
Na, aus gegebenem Anlass schau ich mir mal die aktuelle Version an.
Ich setze den Beitrag hier auf "Gelöst".
Schönen Tag
Biber
danke für die Rückmeldung.
Beyond Compare kenne ich auch (eine etwas ältere Versionen wahrscheinlich) und fand es damals auch ein ganz brauchbares Tool. Habe ich dann aber irgendwie aus den Augen verloren.
Na, aus gegebenem Anlass schau ich mir mal die aktuelle Version an.
Ich setze den Beitrag hier auf "Gelöst".
Schönen Tag
Biber
Wer eins haben möchte der soll sich melden.
Alle!
Nein, Scherz beiseite: wenn Du findest, dass sich mit Beyond Compare eine brauchbare Skript-Lösung erstellen lässt, wenn man/frau weiß wie , dann poste doch ruhig eine Skizze.
Hilft ja vielleicht auch anderen - so exotisch ist ja die Aufgabenstellung "Verzeichnisstrukturen vergleichen" auch nicht.
Oder mach ein kurzes Tutorial daraus.
Beyond Compare ist ohnehin viel zu unbekannt... vielleicht kannst Du es ein wenig bekannter machen.
Gruß
Biber