星之子 发表于 2024-9-6 11:16:53

【自编脚本】提取文件夹中所有文件的MD5值

简介
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16个字符(BYTES))的散列值(hash value),用于确保信息传输完整一致。
MD5曾被用于文件校验、SSL/TLS、IPsec、SSH,但MD5早已被发现有明显的缺陷。2004年,证实MD5算法无法防止碰撞攻击,因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途——但日常使用绰绰有余。

使用方法
将代码复制粘贴到.txt中保存,并将后缀改为.bat,放入想要提取文件MD5的文件夹下,双击运行即可。
文件名会标记为“YYMMDD_hhmm.txt”。然后将当前目录位置、生成详细时间记录于开头,紧接着输出所有文件的MD5和文件名,效果如下:

还可以和之前提到过的【软件推荐】ContextMenuManager 右键菜单管理联合,将该.bat批处理文件集成到右键菜单,方便随时在任意目录下调用。

代码
@echo off
setlocal enabledelayedexpansion

:: 获取当前日期和时间
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%"

:: 设置输出文件名
set "filename=%YY%%MM%%DD%_%HH%%Min%.txt"

:: 写入当前文件夹路径
echo Current Directory: %CD% > %filename%

:: 写入生成时间
echo Generated on: %date% %time% >> %filename%
echo. >> %filename%

:: 写入表头
echo Hash                              Name >> %filename%
echo ----                              ---- >> %filename%

:: 遍历当前文件夹下的所有文件
for %%F in (*) do (
    :: 计算文件的MD5值
    for /f "tokens=*" %%a in ('CertUtil -hashfile "%%F" MD5 ^| findstr /v "hash of file certutil"') do (
      set "filehash=%%a"
      set "filehash=!filehash: =!"
      :: 将小写字母替换为大写字母
      for %%i in (A B C D E F) do (
            set "filehash=!filehash:%%i=%%i!"
      )
    )
    :: 写入文件名和MD5值
    echo !filehash!    %%~nxF >> %filename%
)



endlocal


星象占卜

zxc31000 发表于 2024-9-6 11:19:16

牛的,前排膜拜大佬

PURO_ 发表于 2024-9-6 11:23:39

看到代码眼睛已经开始花了,还是码住以备不时之需

折木 发表于 2024-9-6 11:30:01

这个脚本对机器学习很有帮助呢{:6_169:}

福黎 发表于 2024-9-6 11:32:17

现在MD5普遍用来检验文件完整性吧,有这么一个脚本还是挺方便的

lightisflying 发表于 2024-9-6 11:36:15

哇塞,虽然目前用不到,不过先收藏了

凯诺斯 发表于 2024-9-6 11:39:19

挺专业的,能提取MD5值感觉挺方便的惹{:6_169:}

毛茸茸兽兽 发表于 2024-9-6 11:55:58

喔⊙ω⊙简单有序又明了,强迫症福音哇

娱乐法师火布偶 发表于 2024-9-6 12:03:07

感觉上是锤人必用的工具了;P

不是卖萌的基佬 发表于 2024-9-6 12:13:49

很强大的功能 一些奇怪的搬运不修改的话能方便找到是谁的文件

加牟末礼 发表于 2024-9-6 13:05:11

很专业的样子,路过。

黑达克 发表于 2024-9-6 14:11:31

小白如我日常甚至接触不到MD5值的运用场景,不过能有脚本还是很方便的。

zhuovboyan 发表于 2024-9-6 14:51:35

0-0 今天今天也是小白感叹论坛大佬的一天jpg 过于专业系列

Chare 发表于 2024-9-6 16:27:35

原来md5是这个意思,学到了

cdcai 发表于 2024-9-6 18:56:36

只知道md5用来验证文件一致性

chouki 发表于 2024-9-6 21:04:28

对需要MD5码的坛友很方便了{:6_200:}

饥渴难耐的G 发表于 2024-9-6 23:22:31

我的天哪,楼主这个技术太强了

柯子 发表于 2024-9-7 00:24:48

我的妈论坛真是人才济济,膜拜大佬{:4_93:}

相见忧 发表于 2024-9-7 01:36:15

给星之子点赞b( ̄▽ ̄)d,太厉害了

you9632587 发表于 2024-9-7 08:09:25

虽然一直知道有md5这个东西,不过我从来都没用过,感觉没必要一样
页: [1] 2
查看完整版本: 【自编脚本】提取文件夹中所有文件的MD5值