找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20424|回复: 7

[文件操作] [已解决]批处理根据密码表测试解压密码的问题?

[复制链接]
发表于 2023-5-22 16:21:37 | 显示全部楼层 |阅读模式
长期下载了很多网上的文件,未及时整理,现在发现很多解压密码忘记了,对不上号,我想写个批处理,根据我自已的密码表测试解压密码。
折腾了半天,我写了个笨的,但是运行的时候,这一行的前面总是有个括号,导致运行不成功,删除 do 后面的括号又不行,这种格式应该如何写。
  1. "%rar%" x -y -p%%a -o- "%~dp0%rarname%" "%~dp0ABCDEFG"
复制代码
不知道怎么判断那个密码是正确的,我就用了笨办法,判断是否存在解压出来的文件夹,有没有大神有更好的方法。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo.
  4. set /p rarname=请输入要测试解压密码的压缩文件名称:
  5. echo.
  6. set "rar=C:\Program Files\WinRAR\WinRAR.exe"
  7. for /f "delims=" %%a in ('type "PassList.txt"') do (
  8.        "%rar%" x -y -p%%a -o- "%~dp0%rarname%" "%~dp0ABCDEFG"
  9.        if exist .\ABCDEFG ( echo 找到正确的解压密码:%%a ) else ( echo 错误的解压密码:%%a )
  10.        endlocal
  11. )
复制代码
如果能不解压,只测试解压密码是否正确就更好了,但是我不知道,该如何写?
感谢!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-5-22 17:22:25 | 显示全部楼层
  1. @echo off
  2. set "rar=C:\Program Files\WinRAR\WinRAR.exe"
  3. (for /f "delims=" %%i in ('dir /b /s /a-d *.rar *.zip') do (
  4.         for /f "delims=" %%a in ('type "PassList.txt"') do (
  5.                 if not defined _"%%i" (
  6.                         "%rar%" t -p%%a "%%i" && (
  7.                                 echo %%i %%a   
  8.                                 set _"%%i"=1
  9.                         )
  10.                 )
  11.         )
  12.         if not defined _"%%i" (
  13.                 echo %%i
  14.         )
  15. ))>file_key.txt
  16. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
thp2008 + 1 感谢帮助!

查看全部评分

 楼主| 发表于 2023-5-22 17:53:17 | 显示全部楼层
回复 2# 77七

感谢您的多次帮助,我测试了一下。可以正常运行,最终可以输出正确的密码,就是有个问题,所有错误的密码,WinRAR会弹出图形错误弹窗,需要手工点关闭。我测试的密码较少,还好。如果较多,那就疯了,再帮忙看下,那个参数,可以去掉那个弹窗。非常感谢!
 楼主| 发表于 2023-5-22 17:58:32 | 显示全部楼层
本帖最后由 thp2008 于 2023-5-22 18:01 编辑

对了,我用的WinRAR版本是,6.21
如果你没有的话,这是官方商业版的下载地址:
https://www.win-rar.com/fileadmi ... inrar-x32-621sc.exe
https://www.win-rar.com/fileadmi ... inrar-x64-621sc.exe
商业版的,只要在网上随便找个Key文件,放在安装目录下,就自动激活了,没有广告。个人版的会有广告。
Key文件是不区分版本的,以前的老Key一直通用到现在,都是可以的。key文件的文件名,必须是:rarreg.key
里面的内容是文本的,网上大把。我就不发了。
发表于 2023-5-22 18:02:37 | 显示全部楼层
本帖最后由 77七 于 2023-5-22 18:09 编辑

回复 3# thp2008


   winrar.exe 同目录下有个rar.exe
如下,将第二行改为你的实际地址
  1. set "rar=C:\Program Files\WinRAR\Rar.exe"
复制代码
不过这个解压的文件类型好像有限
如果不满足,可以试下7z,看看有没有测试密码的命令行用法,其余代码应该都一样
 楼主| 发表于 2023-5-22 18:12:45 | 显示全部楼层
回复  thp2008


   winrar.exe 同目录下有个rar.exe
如下,将第二行改为你的实际地址
不过这个解压的 ...
77七 发表于 2023-5-22 18:02


哦,原来有个命令行版的,我修改了,我的就是默认路径。现在不会弹窗了,也没有报错,一闪就完成了,file_key.txt为0字节。没有东西输出了。这是怎么回事
 楼主| 发表于 2023-5-22 18:18:51 | 显示全部楼层
好的,我自已研究一下先,方法我知道了,感谢!
 楼主| 发表于 2023-5-22 18:42:55 | 显示全部楼层
解决了,感谢!
不要改第一行,下面加个-y就好了,改了第一行,反而不好用了。
  1. @echo off
  2. set "rar=C:\Program Files\WinRAR\WinRAR.exe"
  3. (for /f "delims=" %%i in ('dir /b /s /a-d *.rar *.zip') do (
  4.         for /f "delims=" %%a in ('type "PassList.txt"') do (
  5.                 if not defined _"%%i" (
  6.                         "%rar%" -y t -p%%a "%%i" && (
  7.                                 echo %%i %%a   
  8.                                 set _"%%i"=1
  9.                         )
  10.                 )
  11.         )
  12.         if not defined _"%%i" (
  13.                 echo %%i
  14.         )
  15. ))>file_key.txt
  16. type file_key.txt
  17. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 20:06 , Processed in 0.020428 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表