rambojay
Goto Top

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

Content-ID: 36641

Url: https://administrator.de/contentid/36641

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

Egbert
Egbert 25.07.2006 um 13:26:13 Uhr
Goto Top
Hallo,

ich würde da mal windiff -? aufrufen, windiff hat nicht nur eine GUI sondern auch command line optionen.

Gruß
Egbert
RamboJay
RamboJay 25.07.2006 um 13:35:15 Uhr
Goto Top
Wie vergleicht windiff (Welche Methode)

Binär
CRC

THX Jason
Biber
Biber 25.07.2006 um 18:07:35 Uhr
Goto Top
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
RamboJay
RamboJay 26.07.2006 um 18:06:13 Uhr
Goto Top
AAlso
ich kopiere mit Hilfe einer Batch, von mehreren verschiedenen Server, Dateien bzw. Ver-zeichnisse auf eine Festplatte.

Diese möchte ich danach noch mit derselben Batch vergleichen lassen, und die Ergebnisse möglichst Kompakt in eine Log-Datei schreiben lassen.
Biber
Biber 26.07.2006 um 19:37:55 Uhr
Goto Top
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.
....
...[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  
..
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
Biber
Biber 07.08.2006 um 22:27:11 Uhr
Goto Top
@jason
Rückfrage: Ist Dein Beitrag noch offen/beantwortet/gegenstandlos/anders gelöst?

Gruß
Biber
RamboJay
RamboJay 08.08.2006 um 09:37:54 Uhr
Goto Top
Also habe es mit Beyond Compare gelöst!
Biber
Biber 08.08.2006 um 09:53:18 Uhr
Goto Top
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
RamboJay
RamboJay 08.08.2006 um 10:00:04 Uhr
Goto Top
Ok
Die Doku für das Skript ist etwas umständlich aber wenn man mal en etwas Brauchbares beispiel hat dann passt das schon.

Wer eins haben möchte der soll sich melden.
Biber
Biber 08.08.2006 um 10:09:36 Uhr
Goto Top
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
RamboJay
RamboJay 08.08.2006 um 12:19:33 Uhr
Goto Top
Hier mal en kleines Beispiel wie man zwei Verzeichnisse (Laufwerke) per Skript (Batch) mit-einander Binär vergleichen lassen kann.


Achtung "Beyond Compare kann nur mit Lizenz im Skript-Modus ausgeführt werden."


Es müssen 2 Files erstellt werden, ne Batchdatei und ne Configdatei.

Die Batchdatei ruft die Beyond Compare exe auf und übergibt den Pfad zur Configdatei.

"C:\Programme\Beyond Compare 2\BC2.exe" @"X:\batches\VerConfig\I-Laufwerkvergleich.conf"   

"Pfad zur Beyond Compare exe @ Pfad zur Configdatei"

Die Configdatei enthält die Anweisungen für Beyond Compare.

load G:\ D:\G-Laufwerk
expand all
Select all
compare binary
folder-report layout:summary options:display-mismatches output-to:D:\log\G-Laufwerk.html output-options:html-color

load gibt die Laufwerke an die zu Vergleichen sind (max. 2)
expand all öffnet alle Verzeichnisse
Select all markiert alle Dateien und Ordner
compare befehl zum Vergleichen
binary ist die Vergleichsart

folder-report layout:summary Generiert einen zusammengefassten Ordnervergleichsbericht.
options:display-mismatches zeigt nur Unterschiede an.
output-to:D:\log\G-Laufwerk.html gibt den Pfad an wo der Bericht erstellt werden soll
output-options:html-color gibt die Formatierung an.


Beispiel zum vergleichen von mehreren Laufwerken / Verzeichnissen.

"C:\Programme\Beyond Compare 2\BC2.exe" @X:\batches\Vergleichskonfigdateien\I-Laufwerkvergleich.conf  

"C:\Programme\Beyond Compare 2\BC2.exe" @X:\batches\Vergleichskonfigdateien\G-Laufwerkvergleich.conf  

"C:\Programme\Beyond Compare 2\BC2.exe" @X:\batches\Vergleichskonfigdateien\H-Laufwerkvergleich.conf  

"C:\Programme\Beyond Compare 2\BC2.exe" @X:\batches\Vergleichskonfigdateien\J-Laufwerkvergleich.conf  

"C:\Programme\Beyond Compare 2\BC2.exe" @X:\batches\Vergleichskonfigdateien\WSCAD44_Livevergleich.conf  

"C:\Programme\Beyond Compare 2\BC2.exe" @X:\batches\Vergleichskonfigdateien\WSCAD51_Livevergleich.conf  

"C:\Programme\Beyond Compare 2\BC2.exe" @X:\batches\Vergleichskonfigdateien\Intranetvergleich.conf  

Weitere Infos zum individuell anpassen, stehen in der Hilfedatei von Beyond Compare.


Wenn ihr noch Fragen habt dann schreibt mir einfach.

Gruß Jason
Biber
Biber 08.08.2006 um 12:51:11 Uhr
Goto Top
Danke, Jason,

find ich gut. face-wink

Gruß
Biber