0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

バッチファイルでMD5演算と比較を行う

Last updated at Posted at 2022-01-12

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

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?