标题: [文件操作] 求一个批处理命令,输出文件名和哈希值 [打印本页]
作者: netdzb 时间: 2019-7-15 11:39 标题: 求一个批处理命令,输出文件名和哈希值
本帖最后由 netdzb 于 2019-7-15 11:42 编辑
批量输出某个目录的文件名字,后面跟文件的CRC32值,或者MD5值。
文件名和哈希值之间用一个空格分隔。
假设已经有
crc32 文件名
和
md5 文件名的
计算工具
这个好像可以利用重定向完成的,但不知道怎么写?
希望能有bat脚本和shell脚本。我就一个帖子里问了。
不另外开贴了。
期望输出格式如下:
pk_reward.prof 0E6BDEA8
pk_reward.wav B861E45C
去除背景噪声.bat 6513E6E8
作者: Batcher 时间: 2019-7-15 13:31
- @echo off
- (for /f "delims=" %%i in ('dir /b /a-d') do (
- if "%%i" neq "%~nx0" (
- set /p =%%i <nul
- certutil -hashfile "%%i" MD5 | findstr /v "[^0-9a-z]"
- )
- ))>"MD5.log"
复制代码
作者: netdzb 时间: 2019-7-15 16:39
本帖最后由 netdzb 于 2019-7-15 16:43 编辑
回复 2# Batcher
代码没能完全看懂,问的简单一点吧。
计算当前路径下所有的txt文件,显示
文件名 哈希值。
按照你的意思,我改成这样可以吗?
@echo off
(for %%i in ('*.txt') do (
set /p =%%i <nul
certutil -hashfile "%%i" MD5 | %%i
))>"MD5.log"
作者: Batcher 时间: 2019-7-15 17:32
回复 3# netdzb
@echo off
(for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
if "%%i" neq "%~nx0" (
set /p =%%i <nul
certutil -hashfile "%%i" MD5 | findstr /v "[^0-9a-z]"
)
))>"MD5.log"
获取单个文件的MD5并赋值给变量:- @echo off
- for /f %%i in ('certutil -hashfile "1.txt" MD5 ^| findstr /v "[^0-9a-z]"') do (
- set "str=%%i"
- )
- echo %str%
- pause
复制代码
作者: netdzb 时间: 2019-7-15 17:52
回复 4# Batcher
findstr是什么意思?可以去掉吧。
作者: Batcher 时间: 2019-7-15 18:41
回复 5# netdzb
你亲自测试一下就知道了
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |