[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 3# tmpuser


    拖入文件自动回车我也不会,希望有高人指点。不过可以采用 在待计算Hash值文件上右键运行 【Hash值计算】的批处理进行自动计算,代码如下:
  1. @echo off
  2. title 计算文件Hash值
  3. setlocal enabledelayedexpansion
  4. del /f/q hash.txt>nul 2>nul
  5. set paths1=%1
  6. set paths1=%paths1%
  7. :zzz
  8. echo 文件名:%paths1%
  9. certutil -hashfile %paths1% SHA256>hash.txt
  10. certutil -hashfile %paths1% SHA1>>hash.txt
  11. certutil -hashfile %paths1% MD5>>hash.txt
  12. echo.
  13. set /a row=0
  14. for /f "tokens=*" %%i in (hash.txt) do (
  15. set /a row+=1
  16. if !row!==2  echo SHA256值:%%i
  17. if !row!==5  echo SHA1值:%%i
  18. if !row!==8  echo MD5值:%%i
  19. )
  20. del /f/q hash.txt>nul 2>nul
  21. echo.
  22. :kkk
  23. set paths1=>nul
  24. set /p paths1=继续拖放文件:
  25. echo %paths1%|find /i /c ":" >nul&&goto kk1
  26. goto kkk
  27. :kk1
  28. echo %paths1%|find /i /c "\" >nul&&goto kk2
  29. goto kkk
  30. :kk2
  31. goto zzz
复制代码
注,以上代码在计算完右键的文件Hash值后,会提示继续拖放文件计算Hash,仍是需要按键才能下一步的,如果不需要继续,就将:kkk至:kkk2的内容删除即可。


添加右键的代码如下:
  1. @echo off
  2. ::chcp 65001>nul
  3. echo 请鼠标右键【以管理员身份运行】,否则将报错:拒绝访问!
  4. echo.
  5. cd /d "%~dp0"
  6. reg add HKEY_CLASSES_ROOT\*\shell\===Hash值计算(MD5)=== /f
  7. reg add HKEY_CLASSES_ROOT\*\shell\===Hash值计算(MD5)===\command /f
  8. reg add HKEY_CLASSES_ROOT\*\shell\===Hash值计算(MD5)===\command /f /d "\"%~dp0右键计算Hash值.bat\" \"%%1\""
  9. echo.echo.&echo 导入成功,程序1秒后退出!
  10. ping 127.1 -t -n 4 >nul
  11. exit
复制代码
1

评分人数

TOP

回复 1# tmpuser

版本一,拖放文件到批处理上,直接生成“SHA256.txt”文件,里面自动顺序记录下文件名和SHA256值:
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. chcp 936 >nul
  5. set file=%~fx1
  6. set filegs=%file:~-3%
  7. set wfiles=%file%
  8. for /f "tokens=1,2 delims=:^ " %%a in ('certutil -hashfile "%wfiles%" SHA256') do (
  9. set date1=%%a
  10. set date2=%%b
  11. if not defined date2 (echo %file%  !date1!)
  12. ) >>SHA256.txt
  13. exit
复制代码
版本二   只记录SHA256值,不记录文件名。
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. chcp 936 >nul
  5. set file=%~fx1
  6. set filegs=%file:~-3%
  7. set wfiles=%file%
  8. for /f "tokens=1,2 delims=:^ " %%a in ('certutil -hashfile "%wfiles%" SHA256') do (
  9. set date1=%%a
  10. set date2=%%b
  11. if not defined date2 (echo !date1!)
  12. ) >>SHA256.txt
  13. exit
复制代码

TOP

回复 2# Batcher


    好的。就是打开bat窗口拖入文件后不用按确定键就能自动计算hash值,主要就是不想再多按一下回车。我搜了以前的求助帖好像都没有特别好的解决方法,不知道vbs能不能实现。

代码就是这些:
@echo off
setlocal enabledelayedexpansion
:zzz
set /p xxx=文件名:
certutil -hashfile %xxx% SHA256
echo.
goto zzz

TOP

回复 1# tmpuser


请说明一下真实的完整需求吧,也许可以把 set /p 换成其它方式。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表