alme123
Goto Top

In Ordner un Unterordnern nach Dateien mit exater md5 suchen per Batch

Hallo zusammen,

ich bin auf der Suche nach einer Lösung für folgendes Progblem:

Eine Batch (oder Vbs) soll in einem Ordner (zb. E:\) und allen Unterordnern nach einer oder mehreren Dateien suchen, die die exate md5 haben wie die variable (md5).
Diese Dateien sollen jeweils in seperate Variabeln geschrieben werden.

Ich sitze schon seit Stunden dran, find aber keine Lösung.

Danke im Vorraus,

Alme123

Content-ID: 193666

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

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

bastla
bastla 03.11.2012 aktualisiert um 14:07:00 Uhr
Goto Top
Hallo Alme123!

Wie weit bist du auf dem Lösungsweg gekommen, wie sieht der derzeitige Stand Deines Batches aus?

Womit sollen die md5-Summen ermittelt werden?

Und: Wozu soll schon wieder das Pseudo-Array ("separate Variablen") gut sein?

Außerdem: Wäre es nicht sinnvoll, eine Vorauswahl der Dateien zu treffen (zB anhand ihrer Größe)?
Eine Alternative zum Batch wäre zB ein "Duplikate-Sucher" wie CloneSpy - die zu vergleichende Datei alleine in einen Pool und die zu durchsuchenden Verzeichnisse in den anderen Pool geben ...

Grüße
bastla
Alme123
Alme123 03.11.2012 um 14:27:24 Uhr
Goto Top
Hi bastla,

- Die md5 Summen werden mit einer datei ermittelt:

Die sytnax sieht so aus: md5.exe datei.exe
Ausgabe: Md5Summe

- Das Pseudo-Array ist eigentlich egal, es müssten dann die Dateien in einer for schleife gesucht werden, weil ein seperater Schritt durchgeführt werden muss (call :bla)

- Fortschritt: 0,0001% (= 0)

- Eine Vorrauswahl, wäre nur teilweise sinnvoll, weil es immer verschiedene sind (min. 60 Bytes)

- CloneSpy: Nein es muss md5 sein. Sonst geht es nicht.

Alme123
bastla
bastla 03.11.2012 aktualisiert um 15:25:30 Uhr
Goto Top
Hallo Alme123!
Eine Vorrauswahl, wäre nur teilweise sinnvoll, weil es immer verschiedene sind (min. 60 Bytes)
Na ja, dann muss eben immer für jede Datei die MD5-Summe berechnet werden (was das hinsichtlich der Performance bedeutet, merkst Du ja dann ohnehin) ...

Sinnvoll wäre es aber wohl, wenn auch noch nach unterschiedlichen MD5-Summen gesucht werden soll, vorweg einfach für alle Dateien den Wert zu ermitteln und in einer Textdatei zu speichern, sodass dann nur noch per "findstr" diese Datei durchsucht werden müsste ...

... anyhow: Soferne Du zumindest auf den Datentyp (.exe) einschränken kannst, sollte das (ungetestet) etwa so gehen:
@echo off & setlocal
set "Basis=E:\"  
set "Typ=exe"  
set "MD5=0123456789abcdef0123456789abcdef"  

for /r "%Basis%" %%i in (*.%Typ%) do (  
    for /f %%m in ('C:\Tools\md5.exe "%%i"') do if %%m==%MD5% (  
        echo Gefunden: "%%i"  
        REM Verarbeitung kann von hier aus aufgerufen werden
    )
)
Annahme war, dass die Ausgabe von "md5.exe" tatsächlich nur aus der MD5-Summe besteht.

Grüße
bastla
Alme123
Alme123 03.11.2012 um 15:34:30 Uhr
Goto Top
Hi bastla,

das ist genau das Richtige!

Vielen, vielen Dank!
Du hilfst bei solchen Sachen am besten weiter!

Alme123

[Theard Closed]