2009年(35)
分类: WINDOWS
2009-09-07 16:34:05
对于经常在edelivery上或其他地方下载资源的我来说,经常需要验证下载的文件是否正确,通常只能一个一个的取得文件的md5值,然后再与官方给的md5值对比,若文件很多的话会很累,所以取巧用批处理写了批量检查的东西,使用很见到,首先将官方的md5值放在MD5_check.txt文件中(可以累积很多的md5值,以后只管查询就是了)。然后将下面的代码放在MD5.BAT文件中,双击运行就可以了。
不过有一点,我是利用openssl来检查md5值的,所以你必须要有openssl for windows的文件,可以在 下载,解压到某一目录即可,比如我解压到 E:\openssl。
代码如下:
@echo off
title MD5值检查器
echo ---------------------------检查MD5值是否匹配------------------
ECHO.
IF NOT EXIST check_ok_temp (md check_ok_temp)
echo ok>check_ok_temp\MD5_check.txt
echo ok>check_ok_temp\MD5.BAT
echo ok>check_ok_temp\check_ok_temp
FOR /F %%A IN ('dir/b') do (
IF NOT %%A==MD5.BAT (
IF NOT %%A==MD5_check.txt (
IF NOT %%A==check_ok_temp (
echo 正在检查: %%A
FOR /F "tokens=2" %%I IN ('E:\openssl\openssl.exe dgst -md5 %%A') DO (
FOR /F %%N IN (MD5_check.txt) DO (
IF /I %%I==%%N (echo ---------------------------------------------------------ok
echo ok>check_ok_temp\%%A
)
)
)))))
echo.
echo.
echo.
ECHO 如下文件检查失败!
FOR /F %%w IN ('dir/b') do (
IF NOT EXIST check_ok_temp\%%w (
echo %%w
FOR /F "tokens=2" %%z IN ('E:\openssl\openssl.exe dgst -md5 %%w') do (
echo 其MD5值为:%%z
)
)
)
pause
rd /q /s check_ok_temp