verzeichnisse mit checksummen vergleichen (windows)

um unter windows zwei verzeichnisse (z.b. nach einem kopiervorgang) zu vergleichen, kann man sich das commandline tool “File Checksum Integrity Verifier” zu nutze machen.

das tool “fciv.exe” kann eine xml datei anlegen, welche die checksummen in folgendem format abspeichert:



	
		 
		 
		 
	
	

die checksummen werden dabei base64 codiert gespeichert.

hier eine batchdatei, welche man im gleichen verzeichnis wie die fciv.exe ablegt. diese fragt das zu scannende verzeichnis ab und den pfad, in dem der output als xml datei abgelegt werden soll.

@echo off
set /p E1=Zu scannendes Verzeichnis:
set /p E2=Ausgabe der db.xml in Verzeichnis:
%cd%\fciv.exe -add "%E1%" -r -bp "%E1%" -both -xml "%E2%\db.xml"
pause

kurze erklaerung der parameter:
-add : checksummen fuer angegebene(n) datei/ordner erstellen.
-r : rekursiv inkl. unterverzeichnisse.
-bp : der “basepath” wird entfernt und nicht mit in der datei abgespeichert.
-both : es werden MD5 und SHA1 checksummen erzeugt.
-xml : ausgabe der ergebisse in die angegebene xml-datei

mit der folgenden batch kann man pruefen, ob die dateien in den verzeichnissen noch den urspruenglichen entsprechen (der parameter “-v” steht fuer “verify”)

@echo off
set /p E1=Zu scannendes Verzeichnis:
set /p E2=Pfad, in der die db.xml liegt:
%cd%\fciv.exe -v -bp "%E1%" -both -xml "%E2%\db.xml"
pause

dankenswerter weise gibt die fciv.exe beim verifizieren einen entsprechenden errorcode zurueck, so dass man das auch prima in skripten zur automatisierung benutzen kann. wie bei anderen programmen auch ueblich eine “0” für “alles in ordnung” und eine “1” fuer “fehlgeschlagen”.

in beiden batches wird der parameter “-bp” verwendet, damit nur relative pfade in der xml datei gespeichert werden. dies ist von noeten, wenn man quelle und ziel nach einem kopiervorgang vergleichen will und diese sich in unterschiedlichen pfaden befinden.

Author: sd

Leave a Reply

Your email address will not be published. Required fields are marked *