Windows10コマンドプロンプトの標準コマンドでMD5チェックサム演算し、あらかじめ用意されたチェックサムファイルの内容と比較し合否表示するだけのバッチファイルです。
(ファイル名規定)
元データファイル名: XXX.DAT
ハッシュファイル名: XXX.DAT.MD5
(元データファイルに拡張子".MD5"が付け足された名称のチェックサム文字列格納ファイル)
(実行例)
MD5.BAT XXX.DAT
(実行結果)
MD5:0123456789abcdef0123456789abcdef
CHK:0123456789abcdef0123456789abcdef
ハッシュ一致.
続行するには何かキーを押してください . . .
エラーの場合は
ハッシュ不一致. [異常]
と結果表示します。
【注意事項】
本記事中の内容はサンプルコードであり、ソフトウェアを使用した結果いかなる損害等が発生しても当方は一切責任を負いません。
●ソースコード
MD5.BAT
@echo off
REM ハッシュ(MD5)を演算比較し結果を表示
setlocal
set CMD=certutil -hashfile %1 MD5
for /f "usebackq tokens=1,2" %%a in (`%CMD%`) do (
if not "%%a"=="SHA1" (
if not "%%a"=="CertUtil:" (
set MD5=%%a
)
)
)
echo.
echo MD5:%MD5%
rem MD5比較ファイル
set DIF=%~1.md5
if not exist "%DIF%" (
rem 比較ファイルが存在しない
goto end
)
rem 比較ファイルからチェックサム読み込み
set /P TOK=<"%DIF%"
for /f "tokens=1" %%a in ("%TOK%") do (
set CHK=%%a
)
echo CHK:%CHK%
rem 比較する
echo.
if %MD5%==%CHK% (
echo [32m ハッシュ一致. [37m
) else (
echo [31m ハッシュ不一致. [異常][37m
)
:end
echo.
endlocal
pause
exit /b
以上