Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MD5 Checksumme per Batch Datei prüfen

Frage Entwicklung Batch & Shell

Mitglied: Kalamari

Kalamari (Level 1) - Jetzt verbinden

19.08.2011, aktualisiert 18.10.2012, 10265 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
Mitglied: bastla
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:
01.
@echo off & setlocal 
02.
set "Datei=D:\Deine Datei.Typ" 
03.
set "MD5_Original=1234567890abcdef1234567890abcdef" 
04.
 
05.
for /f "eol=/" %%i in ('fciv "%Datei%"') do set "MD5_Datei=%%i" 
06.
if /i not "%MD5_Original%"=="%MD5_Datei%" echo "%Datei%" ist fehlerhaft! & goto :eof 
07.
echo "%Datei%" ist OK und kann verwendet werden.
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]
Bitte warten ..
Mitglied: Kalamari
20.08.2011 um 07:20 Uhr
Hallo!

Vielen vielen Dank!
Scheint auf Anhieb zu funktionieren

Habe da noch eine Frage, für was schreibt man, oder braucht man das setlocal =

Danke nochmals!
Bitte warten ..
Mitglied: bastla
20.08.2011, aktualisiert 18.10.2012
Hallo Kalamari!
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" ...
Bitte warten ..
Mitglied: Kalamari
20.08.2011 um 09:00 Uhr
Hi

Werde ich dann machen
Eine kleine Zusatzfrage habe ich noch ...
Ist es auch möglich, per Batch Datei zu prüfen, ob das MS Framenetwork installiert ist?
Dieses muss für mein Vorhaben installiert sein.

Bzgl. SetLoacal, das ist also nicht unbedingt erforderlich?

Vielen Dank nochmal!
Bitte warten ..
Mitglied: Skyemugen
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
01.
if exist "%WINDIR%\Microsoft.NET\Framework" (echo NET Framework ist installiert) else (echo NET Framework ist nicht installiert)
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é
Bitte warten ..
Mitglied: Kalamari
20.08.2011 um 09:32 Uhr
Ihr seid Genial!
Denke mal, dass das ein Ansatz ist für mich.
Es muss mindestens Framework 2.0 installiert sein.

Vielen dank!
Bitte warten ..
Mitglied: Skyemugen
20.08.2011 um 10:08 Uhr
Aloha,

nun, dann machen wir die Abfrage eben so:
01.
@echo off & setlocal 
02.
if not exist "%WINDIR%\Microsoft.NET\Framework" echo NET Framework ist nicht installiert & pause & goto :eof 
03.
 
04.
for /f "delims=" %%s in ('dir /b /ad /on "%WINDIR%\Microsoft.NET\Framework" ^|findstr /B "v"') do set "V=%%s" 
05.
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) 
06.
pause 
07.
goto :eof
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é
Bitte warten ..
Mitglied: Kalamari
20.08.2011 um 10:22 Uhr
Hallo

Also echt, einfach genial!!
Vielen vielen Dank!!!!

Schade dass es hier keinen Bewertungsbutton gibt

P.s.: Was hat denn das :eof zu bedeuten?
Ist das sowas wie das Ende der Batch?
Bitte warten ..
Mitglied: Skyemugen
20.08.2011 um 10:34 Uhr
Aloha,

Ist das sowas wie das Ende der Batch?

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 ^_^)

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 know

greetz André
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst In Batch auf Erstelldatum einer Datei prüfen (5)

Frage von AS-N00 zum Thema Batch & Shell ...

Batch & Shell
gelöst Bestimmte Daten aus CSV per Windows BATCH Datei in .txt Format schreiben lassen. (9)

Frage von freshman2017 zum Thema Batch & Shell ...

Windows Netzwerk
gelöst Netzwerkpfad per Batch-Datei (6)

Frage von AveiroCR7 zum Thema Windows Netzwerk ...

Batch & Shell
gelöst Batch Datei: ECHO ist ausgeschaltet (OFF) (3)

Frage von twiceface zum Thema Batch & Shell ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (19)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...