无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 33670|回复: 258

[原创] 【20250804】便捷右键菜单:7z极限解压缩

    [复制链接]
发表于 2023-10-7 17:04:00 | 显示全部楼层 |阅读模式
本帖最后由 BEIKING 于 2025-8-4 14:37 编辑

00004.gif

【包含功能】
  ① 转换7z文件为自解压程序
  ② 提取可解压文档的内部图片
  ③ 智能解压到文件夹
  ④ 7z极限压缩 (常规压缩、LZMA、LZMA2、LZMA2 BCJ2)
  ⑤ 按分卷压缩为7z
  ⑥ 压缩为zip

【脚本设置】
Set "ImgExt=*.emf *.wmf *.jpg *.jpeg *.jfif *.jpe *.png *.bmp *.dib *.rle *.gif *.emz *.wmz *.pcz *.tif *.tiff *.eps *.pct *.pict *.wpg" :: 提取图片过滤字符串
Set "DocExt=.docx .xlsx .pptx .ofd .chm" :: 支持提取图片的文档格式
Set "SdcExt=7z rar rar5" :: 支持获取根列表的压缩格式

【使用方法】
*** 不支持带 % 路径 ***

方法一、安装系统右键菜单
双击“7z极限压缩.bat”添加系统右键菜单
再次双击“7z极限压缩.bat”删除系统右键菜单

方法二、通过命令行参数调用,可集成到第三方管理器
注意事项:
  下文提到的“带双引号路径”,就算是路径没含空格也必须带上双引号
   <> 为必选参数 | [] 为可选参数
  “压缩等级”可选范围:0 1 3 5 7 9
  “字典大小”可选范围:64m 96m 128m 192m 256m 384m 512m 768m ...

① 转换7z文件为自解压程序:
7z极限压缩.bat MakeSfx "命令行窗口标题" "带双引号的7z文件绝对路径"
例子:
  7z极限压缩.bat MakeSfx "7z转换自解压程序" "C:\Test\file.7z"

② 提取可解压文档的内部图片
7z极限压缩.bat ExtrImg "带双引号的可以解压文档绝对路径"
例子:
  7z极限压缩.bat ExtrImg "C:\Test\file1.docx"

③ 智能解压到文件夹:
7z极限压缩.bat <SmartDc|StDcDel> <Judge|MkDir> "命令行窗口标题" "带双引号的解压文件绝对路径" ["带双引号的解压绝对路径"]
  SmartDc -> 智能解压到文件夹
  StDcDel -> 智能解压到文件夹成功后,删除源文件
  Judge   -> 通过获取压缩包根路径列表,判断是否需要新建文件夹解压
  MkDir   -> 预先解压到当前临时文件夹,再判断是否自动移出
  "带双引号的解压绝对路径" 非必填,若不指定则解压到压缩文件的当前路径
例子:
  7z极限压缩.bat SmartDc Judge "智能解压到文件夹" "C:\Test\file.7z"
  7z极限压缩.bat SmartDc Judge "智能解压到文件夹" "C:\Test\file.7z" "C:\Users\Administrator\Desktop"

④ 解压到文件夹:
7z极限压缩.bat <Extract|ExtrDel> "命令行窗口标题" "带双引号的解压文件绝对路径" ["Desktop"|"ArchDir"|"带双引号的解压绝对路径"]
  Extract -> 解压到文件夹
  ExtrDel -> 解压到文件夹成功后,删除源文件
  Desktop -> 表示解压到当前用户桌面
  ArchDir -> 表示解压到[压缩包名称]文件夹
例子:
  7z极限压缩.bat Extract "解压到当前文件夹" "C:\Test\file.7z"
  7z极限压缩.bat Extract "解压到[压缩包]文件夹" "C:\Test\file.7z" "ArchDir"
  7z极限压缩.bat Extract "解压到桌面文件夹" "C:\Test\file.7z" "C:\Users\Administrator\Desktop"

⑤ 常规压缩(不含目录):
7z极限压缩.bat UltiCom NoDir "命令行窗口标题" "压缩等级[0 1 3 5 7 9]" "带双引号的文件夹绝对路径"
例子:
  7z极限压缩.bat UltiCom NoDir "GUI设置:9-极限压缩 不含目录" "9" "C:\Test"

⑥ 常规压缩:
7z极限压缩.bat UltiCom General "命令行窗口标题" "压缩等级[0 1 3 5 7 9]" "带双引号的第一个压缩对象绝对路径" ["第二个对象(可以是相对路径也可以是绝对路径)" ...]
7z极限压缩.bat UltiCom General "命令行窗口标题" "压缩等级[0 1 3 5 7 9]" "带双引号的生成文件绝对路径.[-out]!" "第一个对象(可以是相对路径也可以是绝对路径)" ["第二个对象(可以是相对路径也可以是绝对路径)" ...]
例子:
  7z极限压缩.bat UltiCom General "GUI设置:9-极限压缩" "9" "C:\Test"
  7z极限压缩.bat UltiCom General "GUI设置:9-极限压缩" "9" "C:\Test\file1.txt" "file2.txt" "file3.txt"
  7z极限压缩.bat UltiCom General "GUI设置:9-极限压缩" "9" "C:\Test\生成文件.7z.[-out]!" "file1.txt" "file2.txt" "file3.txt"

⑦ LZMA 算法极限压缩:
7z极限压缩.bat UltiCom LZMA "命令行窗口标题" "字典大小" "带双引号的第一个压缩对象绝对路径" ["第二个对象(可以是相对路径也可以是绝对路径)" ...]
7z极限压缩.bat UltiCom LZMA "命令行窗口标题" "字典大小" "带双引号的生成文件绝对路径.[-out]!" "第一个对象(可以是相对路径也可以是绝对路径)" ["第二个对象(可以是相对路径也可以是绝对路径)" ...]
例子:
  7z极限压缩.bat UltiCom LZMA "单线程 LZMA 128M" "128m" "C:\Test"
  7z极限压缩.bat UltiCom LZMA "单线程 LZMA 128M" "128m" "C:\Test\file1.txt" "file2.txt" "file3.txt"
  7z极限压缩.bat UltiCom LZMA "单线程 LZMA 128M" "128m" "C:\Test\生成文件.7z.[-out]!" "file1.txt" "file2.txt" "file3.txt"

⑧ LZMA2 算法极限压缩:
7z极限压缩.bat UltiCom LZMA2 "命令行窗口标题" "字典大小" "带双引号的第一个压缩对象绝对路径" ["第二个对象(可以是相对路径也可以是绝对路径)" ...]
7z极限压缩.bat UltiCom LZMA2 "命令行窗口标题" "字典大小" "带双引号的生成文件绝对路径.[-out]!" "第一个对象(可以是相对路径也可以是绝对路径)" ["第二个对象(可以是相对路径也可以是绝对路径)" ...]
例子:
  7z极限压缩.bat UltiCom LZMA2 "多线程 LZMA2 128M" "128m" "C:\Test"
  7z极限压缩.bat UltiCom LZMA2 "多线程 LZMA2 128M" "128m" "C:\Test\file1.txt" "file2.txt" "file3.txt"
  7z极限压缩.bat UltiCom LZMA2 "多线程 LZMA2 128M" "128m" "C:\Test\生成文件.7z.[-out]!" "file1.txt" "file2.txt" "file3.txt"

⑨ LZMA2 BCJ2 算法极限压缩:
7z极限压缩.bat UltiCom LBCJ2 "命令行窗口标题" "字典大小" "带双引号的第一个压缩对象绝对路径" ["第二个对象(可以是相对路径也可以是绝对路径)" ...]
7z极限压缩.bat UltiCom LBCJ2 "命令行窗口标题" "字典大小" "带双引号的生成文件绝对路径.[-out]!" "第一个对象(可以是相对路径也可以是绝对路径)" ["第二个对象(可以是相对路径也可以是绝对路径)" ...]
例子:
  7z极限压缩.bat UltiCom LBCJ2 "多线程 LZMA2 128M f=BCJ2" "128m" "C:\Test"
  7z极限压缩.bat UltiCom LBCJ2 "多线程 LZMA2 128M f=BCJ2" "128m" "C:\Test\file1.txt" "file2.txt" "file3.txt"
  7z极限压缩.bat UltiCom LBCJ2 "多线程 LZMA2 128M f=BCJ2" "128m" "C:\Test\生成文件.7z.[-out]!" "file1.txt" "file2.txt" "file3.txt"

⑩ 按分卷压缩为7z:
7z极限压缩.bat UltiCom Split "命令行窗口标题" "压缩等级[0 1 3 5 7 9]|分卷大小" "带双引号的第一个压缩对象绝对路径" ["第二个对象(可以是相对路径也可以是绝对路径)" ...]
7z极限压缩.bat UltiCom Split "命令行窗口标题" "压缩等级[0 1 3 5 7 9]|分卷大小" "带双引号的生成文件绝对路径.[-out]!" "第一个对象(可以是相对路径也可以是绝对路径)" ["第二个对象(可以是相对路径也可以是绝对路径)" ...]
例子:
  7z极限压缩.bat UltiCom Split "按 500MB 分卷压缩为7z" "7|500m" "C:\Test"
  7z极限压缩.bat UltiCom Split "按 500MB 分卷压缩为7z" "7|500m" "C:\Test\file1.txt" "file2.txt" "file3.txt"
  7z极限压缩.bat UltiCom Split "按 500MB 分卷压缩为7z" "7|500m" "C:\Test\生成文件.7z.[-out]!" "file1.txt" "file2.txt" "file3.txt"

⑾ 压缩为zip:
7z极限压缩.bat UltiCom ZIP "命令行窗口标题" "压缩等级[0 1 3 5 7 9]|压缩算法[Deflate Deflate64]" "带双引号的第一个压缩对象绝对路径" ["第二个对象(可以是相对路径也可以是绝对路径)" ...]
7z极限压缩.bat UltiCom ZIP "命令行窗口标题" "压缩等级[0 1 3 5 7 9]|压缩算法[Deflate Deflate64]" "带双引号的生成文件绝对路径.[-out]!" "第一个对象(可以是相对路径也可以是绝对路径)" ["第二个对象(可以是相对路径也可以是绝对路径)" ...]
例子:
  7z极限压缩.bat UltiCom ZIP "最高等级压缩为zip" "9|Deflate" "C:\Test"
  7z极限压缩.bat UltiCom ZIP "最高等级压缩为zip" "9|Deflate" "C:\Test\file1.txt" "file2.txt" "file3.txt"
  7z极限压缩.bat UltiCom ZIP "最高等级压缩为zip" "9|Deflate" "C:\Test\生成文件.7z.[-out]!" "file1.txt" "file2.txt" "file3.txt"



【20231007 21:10】
增加功能:7z文件提取到当前位置

【20231008】
1)增加单文件压缩
2)完善 7z文件 -> 提取到当前文件夹,归纳到统一主菜单管理
3)支持设置统一压缩密码,在脚本23行(默认不开启,有需要自己手动开启)、
4)增加压缩项:7-最大压缩,9-极限压缩

【20231010】
1)实现需求:增加多文件选择,用父文件夹名字做压缩包名的压缩。
     父文件夹右键菜单 -> “不含目录” 压缩
2)调整菜单排版

【20231014】
1)小改动:压缩或解压操作结束,CMD窗口暂停3秒变色提示。用于某些情况压缩命令报错有时间看提示(例如:压缩所需内存不足)
2)版本分为:7z1900版 和 7z2301版

【20240516】
1)更新版本 7z2405

【20240529】
1)更新版本 7z2406

【20240610】
1)7z2406 v2 右键菜单增加,7z压缩包转换为自解压exe程序。

【20240621】
1)更新版本 7z2407

【20240814】
1)更新版本 7z2408

【20241204】
1)更新版本 7z2409

【20250419】
重写脚本:
1)增加7z智能解压、提取文档图片、按分卷压缩、压缩为zip
2)7z智能解压,可以无视压缩包目录结构,如果是零散文件,则会创建根文件夹存放解压文件
3)增加命令行参数调用

第三方资管调用效果
0530.png

【20250419】
智能解压改为通过外置获取压缩包全列表去重根级后再判断,
完善了一些逻辑,现在不会再产生临时解压文件夹

【20250530】
修正一处智能解压失败时处理,
命令行参数增加:StDcDel、ExtrDel  解压完成后删除源文件

【20250713】
1)更新版本 7z2500

【20250804】
1)更新版本 7z2501


链接: https://pan.baidu.com/s/1BF4mGpPUiEbK7X9NBeGF-g?pwd=wqkr
提取码: wqkr

评分

参与人数 6无忧币 +30 收起 理由
2010wukong + 5 很给力!
wawakuliao + 5 赞一个!
tse000 + 5 赞一个!
slyneo + 5 很给力!
huyadong + 5 赞一个!
1801403 + 5 大佬,请把你哪超级菜单分享一下。

查看全部评分

 楼主| 发表于 2023-10-7 21:17:33 | 显示全部楼层
yyz2191958 发表于 2023-10-7 17:14
把解压也弄上去呀

【20231007 21:10】
增加功能:7z文件提取到当前位置
回复

使用道具 举报

 楼主| 发表于 2023-10-7 23:02:17 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2023-10-8 07:29:24 | 显示全部楼层
1801403 发表于 2023-10-7 23:23
老大,你这7Z右键菜单,Win10桌面系统运行批处理后,显示安装成功,但是右键,还是没有7Z菜单呢,电脑也重 ...

右键压缩菜单,我只做在文件夹右键,文件右键没做
如果做在文件右键,只打包单个文件没多大意义
回复

使用道具 举报

 楼主| 发表于 2023-10-8 12:39:21 | 显示全部楼层

同一 一个压缩密码,还是每次压缩都要指定
回复

使用道具 举报

 楼主| 发表于 2023-10-8 13:28:22 | 显示全部楼层
lnf007 发表于 2023-10-8 13:21
只能对文件夹极限压缩,能不能对单个文件也可以呢?

稍后会更新,我看下还有没其他需求
回复

使用道具 举报

 楼主| 发表于 2023-10-8 17:03:41 | 显示全部楼层
51xp 发表于 2023-10-8 12:22
能不能自定义密码呢?

【20231008】
1)增加单文件压缩
2)完善 7z文件 -> 提取到当前文件夹,归纳到统一主菜单管理
3)支持设置统一压缩密码,在脚本23行(默认不开启,有需要自己手动开启)、
4)增加压缩项:7-最大压缩,9-极限压缩
回复

使用道具 举报

 楼主| 发表于 2023-10-8 17:05:05 | 显示全部楼层
casttt 发表于 2023-10-8 11:10
想设置7Z的右键-“压缩”功能,默认采用最大方式(等级7,不是极限、因为小不了多少但费时),

不知有知 ...

【20231008】
1)增加单文件压缩
2)完善 7z文件 -> 提取到当前文件夹,归纳到统一主菜单管理
3)支持设置统一压缩密码,在脚本23行(默认不开启,有需要自己手动开启)、
4)增加压缩项:7-最大压缩,9-极限压缩
回复

使用道具 举报

 楼主| 发表于 2023-10-11 21:45:32 | 显示全部楼层
2010linlance 发表于 2023-10-11 10:35
需求:增加多文件选择,用父文件夹名字做压缩包名的压缩。

【20231010】
1)实现需求:增加多文件选择,用父文件夹名字做压缩包名的压缩。
     父文件夹右键菜单 -> “不含目录” 压缩
2)调整菜单排版
回复

使用道具 举报

 楼主| 发表于 2023-10-14 12:36:30 | 显示全部楼层
本帖最后由 BEIKING 于 2023-10-14 12:42 编辑

【20231014】
1)小改动:压缩或解压操作结束,CMD窗口暂停3秒变色提示。用于某些情况压缩命令报错有时间看提示(例如:压缩所需内存不足)
2)版本分为:7z1900版 和 7z2301版
回复

使用道具 举报

 楼主| 发表于 2024-5-16 14:35:31 | 显示全部楼层
【20240516】
1)更新版本 7z2405
回复

使用道具 举报

 楼主| 发表于 2024-5-29 08:26:04 | 显示全部楼层
tse000 发表于 2024-5-29 07:51
大佬,7-Zip v24.06出来了,有时间也更新一下啊

【20240529】
1)更新版本 7z2406
回复

使用道具 举报

 楼主| 发表于 2024-6-10 01:07:56 | 显示全部楼层
少马石 发表于 2024-6-8 16:17
能不能增加压缩为自解压文件选项。。现有的都是7z啊

【20240610】
1)7z2406 v2 右键菜单增加,7z压缩包转换为自解压exe程序。
回复

使用道具 举报

 楼主| 发表于 2024-6-10 20:00:26 | 显示全部楼层
少马石 发表于 2024-6-10 17:36
刚安装了,自解压是不是不支持文件夹啊。。?文件夹目录右键没有自解压,,单文件、多文件有

为保持通用性,要先打包成7z文件,然后有需要再右击7z文件转换为自解压文件
回复

使用道具 举报

 楼主| 发表于 2024-6-13 22:37:49 | 显示全部楼层
少马石 发表于 2024-6-13 18:01
明白了。。另请教,如何修改,才能压缩7z时不带被压缩文件后缀呢

正常右键压缩文件夹是不会有后缀的,,
你这是压缩单文件为7z?

脚本默认取右键对象的全名也包括后缀名,之所以要带上后缀,是为了预防文件夹名也带有.的情况,这时候如果不包含后缀名传参文件夹路径是错误的。

所以不建议改脚本
回复

使用道具 举报

 楼主| 发表于 2024-6-13 22:51:12 | 显示全部楼层
少马石 发表于 2024-6-13 18:01
明白了。。另请教,如何修改,才能压缩7z时不带被压缩文件后缀呢

看了下,可能没问题,,你这么改
用文本编辑器打开脚本,不建议用系统的记事本编辑,如果是记事本打开,保存时切记要用ANSI编码,不能utf-8

搜 %%%%~i.7z,大概有15处
替换为 %%%%~di%%%%~pi%%%%~ni.7z
修改后,需要重新安装右键菜单
回复

使用道具 举报

 楼主| 发表于 2024-6-21 22:08:05 | 显示全部楼层
tse000 发表于 2024-6-21 19:08
大佬,7-Zip v24.07出来了,有空也更新一下啊

【20240621】
1)更新版本 7z2407

评分

参与人数 1无忧币 +5 收起 理由
2010wukong + 5 右键菜单可否减少些选项

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2024-6-22 21:56:31 | 显示全部楼层
2010wukong 发表于 2024-6-22 20:28
非常感谢楼主的作品,超级好用。
提个小小的疑问,是否可以把右键菜单的选项减少一些?只留一两个常用的 ...

你自己可以根据需要编辑DIY。

评分

参与人数 1无忧币 +5 收起 理由
2010wukong + 5 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2024-6-23 16:43:22 | 显示全部楼层
2010wukong 发表于 2024-6-23 16:14
我试着删了bat文件的第71~108行,
只想保留压缩的“不含目录”和常规压缩
运行时发现只有解压缩的命令
...

在你改的基础上,再删除这两行
reg delete "HKCR\%~1\Shell\7zUC\Shell\GUI_09_0" /f 1>nul 2>nul
reg delete "HKCR\%~1\Shell\7zUC\Shell\GUI_09_1" /f 1>nul 2>nul

评分

参与人数 1无忧币 +5 收起 理由
2010wukong + 5 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2024-6-29 07:57:57 | 显示全部楼层
bilv 发表于 2024-6-29 07:55
设置密码功能都添加了,加密文件名 这个功能怎么添加???

要去查命令行参数,加上就可以了
回复

使用道具 举报

 楼主| 发表于 2024-8-14 09:04:57 | 显示全部楼层
tse000 发表于 2024-8-14 07:28
大佬,7-Zip 24.08出来了,更新一下呗^_^

【20240814】
1)更新版本 7z2408
回复

使用道具 举报

 楼主| 发表于 2024-10-25 08:25:58 | 显示全部楼层
lxy60017482 发表于 2024-10-25 08:22
超级菜单win11可以用吗?

可以
回复

使用道具 举报

 楼主| 发表于 2024-11-29 14:58:36 | 显示全部楼层
hqhlwz 发表于 2024-11-29 14:14
有提供 删除右键菜单工具吗

再执行一次,不就删除了
回复

使用道具 举报

 楼主| 发表于 2024-12-4 13:11:54 | 显示全部楼层
2010wukong 发表于 2024-11-30 21:22
看新闻说24.08及以前版本有比较大的bug,楼主大大能否更新最新的2409版本?

【20241204】
1)更新版本 7z2409

评分

参与人数 1无忧币 +5 收起 理由
2010wukong + 5 非常感谢,太帅了~

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2025-2-25 11:14:32 | 显示全部楼层
phoenixzjh 发表于 2025-2-25 10:10
右键菜单无法实现,最大压缩的不包含目录

你可以自己改造,一级菜单后只允许15项,还是16项菜单,现在已经满了,
你自己要去增删修改
回复

使用道具 举报

 楼主| 发表于 2025-4-19 10:42:01 | 显示全部楼层
【20250419】
重写脚本:
1)增加7z智能解压、提取文档图片、按分卷压缩、压缩为zip
2)7z智能解压,可以无视压缩包目录结构,如果是零散文件,则会创建根文件夹存放解压文件
3)增加命令行参数调用
回复

使用道具 举报

 楼主| 发表于 2025-4-24 22:27:42 | 显示全部楼层
【20250419】
智能解压改为通过外置获取压缩包全列表去重根级后再判断,
完善了一些逻辑,现在不会再产生临时解压文件夹
回复

使用道具 举报

 楼主| 发表于 2025-5-30 16:26:59 | 显示全部楼层
【20250530】
修正一处智能解压失败时处理,
命令行参数增加:StDcDel、ExtrDel  解压完成后删除源文件
回复

使用道具 举报

 楼主| 发表于 2025-5-31 17:41:43 | 显示全部楼层
jnwin123 发表于 2025-5-31 15:58
回收站显示 确实看着不舒服。

右键重复的菜单是啥意思?

我没有设置重复菜单
回复

使用道具 举报

 楼主| 发表于 2025-5-31 19:54:07 | 显示全部楼层
jnwin123 发表于 2025-5-31 18:19
两个256 两个384 是什么意思?f=BCJ2

压缩参数不一样,一个有加 f=BCJ2,一个没加
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-9-11 16:10

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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