@echo off title %~nx0 if exist UnxUtils\usr\local\wbin\md5sum.exe ( set exe_md5sum=ok path=%cd%\UnxUtils\usr\local\wbin;%path% ) if exist md5sum.exe set exe_md5sum=ok if not defined exe_md5sum GOTO NOFILE REM ##################################### REM ### ASK REM ##################################### :ASK set md5file= cls echo: echo ============================================================== echo: echo md5ファイルを指定 echo: echo ※ binary としてチェックします。 echo: echo *** 中断するには 99 を入れてEnter *** echo ============================================================== echo. set /p md5file= [ファイル名 , 99] : echo. for /f "usebackq delims=" %%I in ('%md5file%') do set md5file=%%~I if "%md5file%"=="99" GOTO END if "%md5file%"=="" GOTO ASK if not exist "%md5file%" ( echo: echo ============================================================== echo ! %md5file% は存在しません! echo ============================================================== GOTO WAIT ) for /f "delims=" %%I in ("%md5file%") do set dir_test=%%~aI if "%dir_test:~0,1%"=="d" ( echo: echo ============================================================== echo ! %md5file% はディレクトリどす! echo ============================================================== GOTO WAIT ) for /f "delims=" %%I in ("%md5file%") do ( set "dirpath=%%~dpI" ) GOTO Check :WAIT echo: echo *** 何かキーを押すと戻ります *** pause >nul GOTO ASK REM ##################################### REM ### Check REM ##################################### :Check echo: echo ============================================================== echo ! 計算しまする... ! echo ============================================================== echo: pushd %dirpath% for /f "usebackq tokens=1,*" %%x in ("%md5file%") do ( set "md5value=%%x" set "filename=%%y" ) echo %filename% | findstr * >nul && set "filename=%filename:~1%" if not exist "%filename%" GOTO NOTARGET echo ディレクトリ %cd% echo ファイル名 %filename% echo: for /f "usebackq tokens=1" %%x in (`md5sum.exe "%filename%"`) do ( set "md5check=%%x" ) if "%md5value%"=="%md5check%" ( echo OK %filename% echo OK %md5check% ) else ( echo ! ERROR ! %filename% echo 照合値 %md5value% echo 計算値 %md5check% ) GOTO END REM ##################################### REM ### NOTARGET REM ##################################### :NOTARGET echo: echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! echo !!! !!! echo ! ! チェック指定ファイルがありませぬ....orz ! echo !!! !!! echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! echo: echo. echo *** 何かキーを押すと戻ります *** echo. pause >nul GOTO ASK REM ##################################### REM ### NOFILE REM ##################################### :NOFILE echo: echo: echo: echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! echo !!! !!! echo ! ! md5sum.exe がありませぬ.... ! echo !!! !!! echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! echo: GOTO END REM ##################################### REM ### DONE REM ##################################### :END echo. echo *** 何かキーを押すと閉じます *** echo. pause >nul