7-ZipPasswordExt 加密压缩包解压脚本
7-ZipPasswordExt 加密压缩包解压脚本
今年年初的时候曾介绍过 ExtractNow 这个能自动测试密码能否正常解压的小工具,但在实际使用中发现,ExtractNow 无法正常处理部分中文命名的文件,几个月后在小众软件见到介绍 SmartZip 这个类似功能工具的文章,但个人又用不上这么多功能,于是一时兴起,写了个简单的脚本给 Double Commander 调用。
脚本主要功能
脚本的功能很简单,接收从 Double Commander 中传入的参数,调用 7z.exe 按密码库的顺序一个一个密码尝试解压传入的压缩包,直到以下情况发生:
- 文件成功解压。
- 密码尝试次数超过配置的密码总数(即密码库中无匹配密码),此时脚本会提示输入文件解压密码,输入后继续解压,但是需要注意,此时输入的密码并不会登记入密码库。
脚本内容
@echo off
chcp 65001
setlocal enabledelayedexpansion
::7z.exe 的路径
set zipper=%~dp07z.exe
set tempfilelist=%1
set workingpath=%2
::密码总数
set pwcount=10
::密码库(每行一个)
set pw1=123456
set pw2=
set pw3=
set pw4=
set pw5=
set pw6=
set pw7=
set pw8=
set pw9=
set pw10=
set num=1
:CheckPassword
set pwtest=!pw%num%!
if "%pwtest%" == "" goto :NumADD
%zipper% t -p%pwtest% "%tempfilelist%"
if %errorlevel% == 0 goto :Right
cls
:NumADD
set /a num=%num%+1
if %num% LEQ %pwcount% goto :CheckPassword
set /p pwtest=未匹配到密码,可手工输入(回车直接退出):
if %pwtest%=="" Exit
:Right
%zipper% x -p%pwtest% "%tempfilelist%" -o"%workingpath%" -y
exit
Double Commander 配置
由于 Double Commander 的工具栏按钮支持调用各种各样的工具,于是 7-ZipPasswordExt 我也用工具栏按钮配置。
- Icon:工具栏按钮图标。
- Tooltips:工具栏按钮文本提示。
- Command:命令,这里写 7-ZipPasswordExt 脚本的路径。
- Parameters:参数,根据自身需要填写,比如:
%ps %Ds\%os
解压到压缩文件的同名文件夹。%ps %Ds
解压到当前文件夹。
- Start path:起始路径。