MD5 Checksumme per Batch Datei prüfen
Kalamari (Level 1) - Jetzt verbinden
19.08.2011, aktualisiert 18.10.2012, 13052 Aufrufe, 9 Kommentare
Hallo
Ich möchte gerne eine md5 Checksumme einer Datei per Batch Datei prüfen lassen.
Der md5 Hash Wert liegt vor und kann direkt in den Code der *.bat geschrieben werden.
Wie mache ich das nun am Besten?
Habe mich hier angemeldet, da es hier ähnliche Fragen gibt, aber keine Antwort, die mir weiter hilft.
Habt ihr einen Vorschlag für mich bitte?
Vielen Dank
Ich möchte gerne eine md5 Checksumme einer Datei per Batch Datei prüfen lassen.
Der md5 Hash Wert liegt vor und kann direkt in den Code der *.bat geschrieben werden.
Wie mache ich das nun am Besten?
Habe mich hier angemeldet, da es hier ähnliche Fragen gibt, aber keine Antwort, die mir weiter hilft.
Habt ihr einen Vorschlag für mich bitte?
Vielen Dank
9 Antworten
- LÖSUNG bastla schreibt am 19.08.2011 um 23:45:30 Uhr
- LÖSUNG Kalamari schreibt am 20.08.2011 um 07:20:09 Uhr
- LÖSUNG bastla schreibt am 20.08.2011 um 08:44:12 Uhr
- LÖSUNG Kalamari schreibt am 20.08.2011 um 09:00:21 Uhr
- LÖSUNG Skyemugen schreibt am 20.08.2011 um 09:12:30 Uhr
- LÖSUNG Kalamari schreibt am 20.08.2011 um 09:32:52 Uhr
- LÖSUNG Skyemugen schreibt am 20.08.2011 um 10:08:14 Uhr
- LÖSUNG Kalamari schreibt am 20.08.2011 um 10:22:46 Uhr
- LÖSUNG Skyemugen schreibt am 20.08.2011 um 10:34:28 Uhr
- LÖSUNG Kalamari schreibt am 20.08.2011 um 10:22:46 Uhr
- LÖSUNG Skyemugen schreibt am 20.08.2011 um 10:08:14 Uhr
- LÖSUNG Kalamari schreibt am 20.08.2011 um 09:32:52 Uhr
- LÖSUNG Skyemugen schreibt am 20.08.2011 um 09:12:30 Uhr
- LÖSUNG Kalamari schreibt am 20.08.2011 um 09:00:21 Uhr
- LÖSUNG bastla schreibt am 20.08.2011 um 08:44:12 Uhr
- LÖSUNG Kalamari schreibt am 20.08.2011 um 07:20:09 Uhr
LÖSUNG 19.08.2011 um 23:45 Uhr
Hallo Kalamari und willkommen im Forum!
Du brauchst ein Berechnungsprogramm, zB fciv, welches für die Datei die MD5-Summe ermittelt; das Ergebnis kannst Du dann mit Deinem Wert vergleichen.
Für das angeführte "fciv" sähe das (ungetestet) etwa so aus:
Wenn Du die "fciv.exe" nicht zB nach "%windir%\System32" kopiert hast, musst Du den vollen Pfad angeben, also etwa: "C:\Tools\fciv.exe".
Grüße
bastla
[Edit] Schreibweise "if /i" korrigiert [/Edit]
Du brauchst ein Berechnungsprogramm, zB fciv, welches für die Datei die MD5-Summe ermittelt; das Ergebnis kannst Du dann mit Deinem Wert vergleichen.
Für das angeführte "fciv" sähe das (ungetestet) etwa so aus:
@echo off & setlocal
set "Datei=D:\Deine Datei.Typ"
set "MD5_Original=1234567890abcdef1234567890abcdef"
for /f "eol=/" %%i in ('fciv "%Datei%"') do set "MD5_Datei=%%i"
if /i not "%MD5_Original%"=="%MD5_Datei%" echo "%Datei%" ist fehlerhaft! & goto :eof
echo "%Datei%" ist OK und kann verwendet werden.
Grüße
bastla
[Edit] Schreibweise "if /i" korrigiert [/Edit]
LÖSUNG 20.08.2011 um 07:20 Uhr
LÖSUNG 20.08.2011, aktualisiert 18.10.2012
Hallo Kalamari!
Grüße
bastla
P.S.: Falls das genügt, versetze doch bitte den Thread in den Status "erledigt" ...
für was schreibt man, oder braucht man das setlocal =
Hatte ich hier mal kurz erklärt ...Grüße
bastla
P.S.: Falls das genügt, versetze doch bitte den Thread in den Status "erledigt" ...
LÖSUNG 20.08.2011 um 09:00 Uhr
LÖSUNG 20.08.2011 um 09:12 Uhr
Aloha,
nun, wenn du nur prüfen willst, ob es installiert ist und nicht noch, welche Version genau, sollte ein Abfragen des Verzeichnisses reichen
setlocal einzupflegen, vermindert Nebenwirkungen (auf Dauer), wobei man es manchmal explizit nicht angibt, wenn man gesetzte Variablen auch außerhalb weiterverwenden will bzw. innerhalb anderer Batchdateien.
greetz André
nun, wenn du nur prüfen willst, ob es installiert ist und nicht noch, welche Version genau, sollte ein Abfragen des Verzeichnisses reichen
if exist "%WINDIR%\Microsoft.NET\Framework" (echo NET Framework ist installiert) else (echo NET Framework ist nicht installiert)
greetz André
LÖSUNG 20.08.2011 um 09:32 Uhr
LÖSUNG 20.08.2011 um 10:08 Uhr
Aloha,
nun, dann machen wir die Abfrage eben so:
Hier werden, wenn das Verzeichnis vorhanden ist, die Verzeichnisse abgefragt, die mit v beginnen (da dort die einzigen v-ler die Versionsverzeichnisse sein sollten) der Größe nach sortiert, wobei der letzte Fund der höchste ist und in die Variable geschrieben wird.
Dann geschieht eine Abfrage, ob die zweite Stelle des Verzeichnisnamens (z.B. 3 bei v3.0 oder v3.5) größer gleich 2 ist.
greetz André
nun, dann machen wir die Abfrage eben so:
@echo off & setlocal
if not exist "%WINDIR%\Microsoft.NET\Framework" echo NET Framework ist nicht installiert & pause & goto :eof
for /f "delims=" %%s in ('dir /b /ad /on "%WINDIR%\Microsoft.NET\Framework" ^|findstr /B "v"') do set "V=%%s"
if %V:~1,1% geq 2 (echo Voraussetzung erfuellt, es ist NET Framework Version %V:~1% installiert) else (echo Es ist Version %V:~1% installiert, bitte upgraden)
pause
goto :eof
Dann geschieht eine Abfrage, ob die zweite Stelle des Verzeichnisnamens (z.B. 3 bei v3.0 oder v3.5) größer gleich 2 ist.
greetz André
LÖSUNG 20.08.2011 um 10:22 Uhr
LÖSUNG 20.08.2011 um 10:34 Uhr
Aloha,
Jaein
es ist das Ende eines Prozesses, wenn kein Unterprozess mehr stattfindet, wird die Batchdatei damit selbst beendet - alternativ könnte man auch exit /b schreiben und es am Ende einer Batch durchaus weglassen aber da man hier und da mal testet mit der cmd etc. habe ich es mir angewöhnt, dies generell zu setzen (wobei ich bei Unterprozessen dann exit /b für den Hauptvorgang verwende, damit der Anwender das Ende auch wahrnimmt ^_^)
greetz André
Ist das sowas wie das Ende der Batch?
Jaein
Schade dass es hier keinen Bewertungsbutton gibt
Das nicht aber ein grünes Häkchen, das laut Thema des Threads schon vor einiger Zeit hätte gesetzt werden können gelöst - you knowgreetz André