SmartZip 大概能被普通人使用的 7-zip 扩展脚本?

新版增加了 自动新增密码的密码 autoAddPass
复制密码然后智能解压,如果密码正确就会添加到密码列表中
至于如何记住密码已经在密码列表中而不用每次去复制…
这个有待解决

由于自动新增密码,所以可能导致检测速度过慢
添加了 dynamicPassSort 选项
用来排序密码,使最常用的排在最前面
但如果密码太多可能检测速度会过慢
这时候可能就要去ini中去清除password列表中末尾的部分了(使用次数最小)

结合这两项大概能不用再去手动添加密码了…
大部分经常逛的网站就那么几个
常用密码应该也差不多就那么些
但这两项可能会影响速度
所以默认未启用,需手动设置其为1启用

有点像之前小众推荐过的一个

此脚本原来发过一次原型

当时就提到了UZIP
当时的评论是 界面非常漂亮,但是不能传入路径自动解压

后续发现还有些问题
只支持指定格式
不知道解压进度等等.
规则只有一个
解压要耗两倍时间(你可以用它测试下压缩大文件…)

不过我还是从它那学到了测试的方法
我这脚本干的其实是苦力活…
我自己把规则一个个收集
一个个测试
勉强做到快速判断
7z的测试基本上就是把文件解压一遍
所以 UZIP 会耗两倍时间(它是等待测试完成判断结果)
就这上面还有人觉得exe太慢了要调用dll…
其实耗时根本不在dll或exe上(差距大概0-100ms)
而是要在测试过程中中断测试并准确返回结果…
中断测试和完整测试的差距大概是(0ms-几小时(超大文件)…)

其实同类型的软件我大部分都用过
还有解他妈的压
还有ExtractNow

ExtractNow大概是最快的(加上我这个)
但它还是有一些缺点
比方说它的格式限制死了(好像)
某些类型可能不支持
再加上它的解压信息也只有进度,没有其他

1 个赞

我只是提醒你dll也使用命令行语法,使用方法一样,我是好意吧,你怎么说得我像在抱怨
我们90%以上的情况下都是解压无密码的小文件,这时exe就比dll慢1/3或者更多,这才是真正重要的使用场景吧。
而且就算解压大文件10秒,dll只快了50毫秒,但这也是快啊。成本是一点点节省出来的。
exe偶尔鼠标会变漏斗,而dll永远不会。只这一点,dll比exe慢100我都用dll

你那是无密码的
我这是必需要测试密码的

不用测试密码我直接解压不就行了
用什么命令行

说的再多不如分享出来

你标题是"7-zip 扩展脚本",我也是围绕着这个标题作的回复。什么时候"密码"成了前置条件了?
我说的是非密码条件下的意见,所以呢?“我这是必需要测试密码的”,不讨论密码就滚出?

“不用测试密码我直接解压不就行了”,我好奇你怎么个直接解压法
“说的再多不如分享出来”,所以我分享我的概念是在对牛弹琴是吧

你告诉我
不测试是否包含密码怎么完成这一步
我功能就是这个
你跟我说不用测试密码?

  • 压缩包包含密码时,遍历设置的密码,密码正确解压,不正确提示手动输入密码并解压

我真是没力气给你争辩。
使用密码的前提不应该是"是否需要密码"吗?
检测下呗,几毫秒的事。
只有两个结果,1,需要,这是你说的复杂场景。2,不需要,这是我说的快速场景。
这说不通吗?

[命令行正确] [430] [31ms] [2022/6/18 3:9:34]
所以这不就是在做这件事吗
31ms
要多快?

你不要把自己说晕了。
我说的是"无密码",我怎么知道它是无密码的?当然是要测试它是否需要密码,这难理解?

我这一步就是测试它是否包含密码
[命令行正确] [430] [31ms] [2022/6/18 3:9:34]

我当然会在测试密码前检查是否包含密码
检查密码正确肯定没这么快

至于为什么我说不要在意几ms的差别
你猜运行一个空脚本要多久
100+ms
在ahk中讲究这几ms的差别就是搞笑

now := A_TickCount
RunWait("blank.ahk")
MsgBox A_TickCount-now

你还是别搞笑了。ahk 启动慢,跟exe/dll 7Z有毛关系?
它再慢,调用exe/dll,都是微秒级的

而我说的,“dll比exe快,解压小文件更是快得飞起”,到底有什么问题?

所以我问你快多少
我这是30ms你觉得多快算快

另外我说ahk启动速度的原因就是
我的脚本它是单独运行的
它启动到结束就至少要100ms

你给我想个办法让调用的人不运行加载进内存吧

“所以我问你快多少” 看前文。
“我这是30ms你觉得多快算快”,这30MS好像是说检测是否包含密码的耗时?

你这种"我启动时间都100毫秒+,DLL快得这几十毫秒时间我不在乎"的想法,我是没什么想法。
想要快,常驻进程呗。
而且你测试方法有误,启动时间不是一个进程的"启动+退出"。你应该将启动时间通过启动参数传递给ahk,让它计算用时。

解压一个空密码50mb+的文件
测试是否包含密码30ms
解压560ms
重命名320ms(解压到临时文件夹,然后重命名或移出临时文件夹)
这就是为什么我不在这里讲究 ms 差别的原因

其他的每一步耗时可能至少是dll或exe之间差距的几十倍
为什么要把心力花在这几ms上

#####
F:\Documents\Downloads\新建文件夹\新建文件夹.zip
[命令行正确] [430] [31ms] [2022/6/18 3:53:33]
检查密码....
[其他] [343] [563ms] [2022/6/18 3:53:34]
[0] 解压 <--> F:\Documents\Downloads\新建文件夹\新建文件夹.zip
[重命名] [251] [328ms] [2022/6/18 3:53:34]
__7z20220618155333 <--> F:\Documents\Downloads\新建文件夹\新建文件夹

可悲。别忘记加上启动ahk的100毫秒。
我算看明白了,咱们对"效率软件"的定义有完全不同的看法。
每次调用EXE/DLL,DLL都要快几十毫秒。你至少要调用两次,只快了"几MS"?
50MB,解压到临时文件夹,肯定是用DLL解压到内存无法比拟的。

所以目前你还是没回答我检查一个文件是否包含密码用dll要多久

解压到内存然后你是否要移动?
你考虑过压缩文件大小没
压缩文件10G+你怎么办

另外在内存中你解压完是否要移动
从内存中移动10G的文件到硬盘要多久(SSD,HHD之间还有差别)
我直接重命名或移动临时文件最多也就200-500ms

另外你为什么认为解压文件是效率软件