2008.07.28 by sfufoet

SmartUnZip – 智能解压缩

76

最新版 0.3 版

Calon 在小众软件 Group 问了这样一个问题:

有这样的 AHK 脚本吗?

1、让 TC 实现一键解压到当前目录;
2、自动判断是解压到当前文件夹还是到新建目录,取决于压缩包内是目录还是大量文件;

不仅仅是 TC 用户,其实很多人都需要这样一个脚本,可以智能地解压缩。我自己经常弄软件下来玩,所以经常遇到 Calon 的问题。直到他提出,我才想起来,为什么不用 AHK 呢?

update:看到读者的留言。我还是要废话一下。假如一个压缩包里面有大量文件,SmartUnZip 会在当前以压缩包名字新建一个文件夹,把它们解压到里面;加入里面只有一个文件夹,SmartUnZip 直接解压到当前文件夹;如果压缩包只有一个文件也会新建一个文件夹。

SmartUnZip 用 7z 的命令行来解压缩。双击 Install.exe 就可以安装到“发送到”菜单。用法如下图:

SmartUnZip   智能解压缩[图] | 小众软件

运行后,压缩包所在的文件夹就会出现以压缩包名字命名的一个文件夹。可以一口气处理多个压缩包。

下载:请移步这里下载最新版。

P.S.1 本来想弄个智能关联压缩包的右键菜单的。结果弄了半天太麻烦了,就没弄。Helfee 提供了一个方便的思路,但有 bug。顺便感谢 Helfee 的测试。

如果有热心读者想帮忙弄的话。热烈欢迎。

P.S.2 7-zip 命令行中文说明

31 Comments:

  1. 1. echo # 2008/07/28 22:19

    SF!!!

    回复

    Paveo # 2008/07/28 22:23

    这也可以。。

    回复

    皮卡西 # 2008/07/29 01:01

    啊啊…
    没位置了

    回复

  2. 2. sfufoet # 2008/07/28 22:26

    自夸一句,那几个图标太帅了。

    回复

    Paveo # 2008/07/28 22:30

    别自我膨胀了,都不统一大调,旧瓶新酒。。

    回复

    D调 # 2008/07/29 15:37

    S的那个还不错

    回复

    林卯 # 2008/08/02 04:59

    除了GMail那个不错(貌似可再改进,将上面白O状改成一缺口G状,没看到大图标不敢说肯定)其它图标都不咋样。

    回复

  3. 3. Calon # 2008/07/28 22:30

    甚好!懒人有福了~

    回复

  4. 4. nzone # 2008/07/29 00:07

    建议用变量设置!不一定大家都是用“C:\Documents and Settings\用户名\SendTo”。

    回复

    sfufoet # 2008/07/29 09:15

    我就是用变量写的。

    回复

  5. 5. 天堂之门 # 2008/07/29 01:31

    怎么那么麻烦,直接定义热键解压好了。

    火山,脚本代码呢?太绝了吧,弄成EXE了。。。

    回复

    sfufoet # 2008/07/29 09:16

    不是每个人都喜欢用快捷键

    回复

    sfufoet # 2008/07/29 11:59

    关于代码也没什么。关键是人的逻辑。

    回复

    sfufoet # 2008/07/29 12:18

    省得又被抄。

    回复

  6. 6. 天堂之门 # 2008/07/29 01:34

    你自己打包的时候还有两个文件夹呢。

    应该在根目录全选所以文件再打包。将整个文件夹打包只会在解压的时候多一层文件夹。。。

    回复

    sfufoet # 2008/07/29 09:18

    我打包的时候有两个文件夹?阿门同学。你看错了。我又回头去看我的压缩包,只有一层文件夹。

    你没看明白,这个不是单纯解压。

    2、自动判断是解压到当前文件夹还是到新建目录,取决于压缩包内是目录还是大量文件;

    回复

  7. 7. 李二嫂的猪 # 2008/07/29 07:49

    来看代码的……学习学习转成 AU3,不过……

    回复

    sfufoet # 2008/07/29 09:18

    没提供代码。嘿嘿。

    回复

  8. 8. Dickey # 2008/07/29 08:40

    “可以一口气处理多个压缩包”,这个很有吸引力,收藏了,谢谢!

    回复

  9. 9. Jin # 2008/07/29 09:03

    自己一般这样做
    Alt+F9,Backspace,Alt+s,Enter
    搞定,解压到当前tab下同名文件夹

    回复

    Jin # 2008/07/29 09:05

    另,好像可以用TCscript做到菜单项里,关联个快捷键什么的

    回复

    sfufoet # 2008/07/29 09:21

    你这个做法不能根据文件多少判断。我这个是写给有需要的朋友的。

    回复

    Jin # 2008/07/30 11:54

    你什么时候用熟了TC就不说这种话了

    回复

    sfufoet # 2008/07/30 12:20

    每个人都有自己的习惯和喜好。我没用过 TC 也不打算用 TC。你习惯了 TC,习惯按下一堆快捷键;而我喜欢用 ahk,习惯用发送到。

    回复

    sfufoet # 2008/07/30 12:21

    对与上面的话,我表示道歉,因为我没用过 TC。乱猜乱下定论是我不对。抱歉。

    回复

    Jin # 2008/07/30 13:25

    你这样做站长,还开放回复干嘛
    这么NB的人,干脆自己单机建个blog,自娱自乐多好
    你不习惯快捷键是你的事,我什么时候逼你用TC了
    不过我总在问自己,ahk为什么要叫做Auto HOTKEY,怎么不能叫Auto MouseClick呢

    我表示抱歉,吃完午饭撑的慌跑过来看你的网站还回复你的文章是我不对。抱歉。

    回复

  10. 10. tireless # 2008/07/29 10:39

    我用F1解压,通过hoekey的发送按键,当然,不智能。

    回复

  11. 11. D调 # 2008/07/29 11:10

    来晚了

    回复

  12. 12. 天堂之门 # 2008/07/29 12:44

    http://i.namipan.com/files/fc03fa1d7dd63bc31e9d944145bb72279a9b2e9b943900003404/0/2ml.png

    给你截图下来,人赃俱获吧,啊哈哈哈。。。

    目录层次为:SmartUnZip%40appinn.com.7z\SmartUnZip\

    哼,鄙视不提供脚本的,还给EXE加密码~

    回复

    sfufoet # 2008/07/29 13:11

    你用 SmartUnZip 解压的?昨晚的有严重 bug,已经重新传过了。建议重新下载。

    或者我理解错了。

    小众都是这样打包的。压缩包里面是一个文件夹,加上压缩包当然被你算两个啦。

    小众的压缩包你只要,右键解压到当前目录。嘿嘿。

    另关于邮件回复的问题。是我不对。我不该发那么多个。话应该一口气说完。给你造成不便。抱歉。

    因为有些读者期待我们作者回复他。而他又可能会忘记回来看。所以自动发到他邮箱。你只需要去邮箱看回复就 ok 了。

    回复

  13. 13. 天堂之门 # 2008/07/29 12:45

    你这个评论回复通知到邮箱也太恐怖了。没个评论一个邮件。想让我删邮件删到手瘫啊。。。

    回复

    sfufoet # 2008/07/29 13:16

    用 Gmail 就不会出现这样的惨状啦。Gmail 会把同标题的合并为一个邮件。嘿嘿。

    回复

    李二嫂的猪 # 2008/07/29 14:04

    ThunderBird 按话题排序:

    回复

    李二嫂的猪 # 2008/07/29 14:06

    晕死……门,你又得多删除一封邮件了……可恶的 SPAM 插件又把我的留言过滤了……

    TB 效果图:http://lh5.ggpht.com/runningwaterpro/SI6zPTD9JkI/AAAAAAAAAzk/yjIH6ktfYOI/2008-07-29_140159.png&imgmax=640

    回复

    sfufoet # 2008/07/29 15:39

    二猪同学,你又不是作者。你的留言是不是发送到阿门的邮箱的。

    回复

    李二嫂的猪 # 2008/07/29 16:12

    哦,我以为他订阅了呢……

    回复

  14. 14. wirx # 2008/07/29 13:02

    噢,积累小步走的小众软件

    回复

  15. 15. D调 # 2008/07/29 15:14

    可以再增加一个判断方法:当前目录不同类型的文件很多,比如有.rar.exe.txt.dll……(说明此目录很乱),就解压到新建目录。

    回复

    sfufoet # 2008/07/29 15:36

    反正我用另外的方法实现了这样的功能。

    回复

  16. 16. D调 # 2008/07/29 15:22

    SmartUnZip.exe是什么文件,怎么打不开,另外可以增加个选项,能够使用winrar解压

    回复

    sfufoet # 2008/07/29 15:38

    要用 install ,安装到发送到,然后对着压缩包点击右键,选择发送到 – SmartUnZip。

    里面只有一个文件夹,而且只有一个文件的话,就不必新建文件夹了吧?

    个人比较喜欢新建文件夹。有些人可能会不喜欢吧。

    回复

    D调 # 2008/07/29 15:41

    那个,增加个选项可能更好。

    回复

    sfufoet # 2008/07/29 15:46

    也好。关于 rar 的,没必要。而且 7z 也可以揭开 rar 的。

    回复

  17. 17. D调 # 2008/07/29 15:36

    加入里面只有一个文件夹,SmartUnZip 直接解压到当前文件夹;如果压缩包只有一个文件也会新建一个文件夹。

    里面只有一个文件夹,而且只有一个文件的话,就不必新建文件夹了吧?

    回复

    天堂之门 # 2008/07/29 16:08

    这个是这样分析的,如果压缩包文件名和内部那个孤独的文件的文件名相同的话,我想是没必要,不过万一不一致的话,还是有必要新建文件夹的,回答完毕,啊哈哈哈。

    回复

  18. 18. 天堂之门 # 2008/07/29 16:16

    小众的打包方式说实话会让很多人多那么一层目录的,我默认解压就是解压到文件夹的。

    很多压缩包打包方式不同,所以解压到文件夹最安全。。。

    其实你们打包都不科学,压缩软件里好像有设置的。反正不要产生多余的目录就可以了。

    回复

    sfufoet # 2008/07/29 16:20

    你的默认就是导致多个文件夹的罪魁祸首,也是我写这个东西的原因。

    我们的打包很科学的说。只要是小众的,你就大胆地解压到当前文件夹。

    什么叫好像。要那证据出来啊。

    回复

  19. 19. yeardo # 2008/07/29 17:00

    ;在totalcmd中用alt+f9自动解压当前压缩文件到当前目录下

    #SingleInstance ignore
    ControlSend,,{Alt down}{f9}{Alt Up},ahk_class TTOTAL_CMD
    WinWait,ahk_class TDLGUNZIPALL,,1
    IfEqual,ErrorLevel,0
    {
    ControlSetText,TEdit1,.,% title
    Control,Check,,TCheckBox1,ahk_class TDLGUNZIPALL
    ControlClick,TButton4,% title
    }

    回复

  20. 20. 馄饨s # 2008/07/29 17:33

    右键关联的话的话写注册表就可以了啊。

    回复

    sfufoet # 2008/07/29 17:36

    @馄饨s 说起来容易做起来难。如果直接关联到全部文件的右键菜单的话,还不如不关联。

    一个扩展名一个扩展名关联又麻烦。。不知道有多少压缩包的扩展名。。

    回复

    馄饨s # 2008/07/29 17:37

    ……既然是程序,循环少不了……
    把压缩文件的后缀堆成一个数组,循环就可以了……orz。

    回复

    sfufoet # 2008/07/29 18:02

    说的没错。我对注册表不熟悉。。。。

    回复

  21. 21. 呃 # 2008/07/29 18:15

    为什么我怎么也看不见那个“用法如下图”?~
    不过我会用了,这玩意……我电脑右键菜单弹出速度慢……

    回复

    # 2008/07/29 22:28

    我试了一个包含
    一个exe文件
    一个nfo
    一个diz文件
    和一个含有三个jar文件的文件夹
    的rar压缩包。
    结果只有三个jar文件被解压出来了,放在一个以压缩包名称命名的新建文件夹里面。用7-Zip解压则正常。
    我是留言前刚刚下的~

    回复

    sfufoet # 2008/07/29 22:32

    呃,发我邮箱。我的 id @ gmail.com。

    我试试看。

    回复

  22. 22. fonlan # 2008/07/29 18:36

    感觉解压的时候应该加个进度条,要不然解压大文件的时候什么都没显示自己看着心慌啊!
    右键关联不是直接修改注册表就行了吗?为什么无法实现?

    回复

    D调 # 2008/07/29 20:52

    觉得软件只需要判断一下就可以了,解压可以交给系统的解压程序。貌似更加方便。

    回复

    sfufoet # 2008/07/30 10:03

    @ fonlan 加个进度条难度很大。因为 7z 根本就没有提供探测压缩包内有多少文件的命令。所以面对一个未知的数,怎么去从 1 数过去呢?

    右键关联的问题。我对注册表不熟,而且注册表修改起来比较危险。如果在读者的机子上出现问题,我就罪过了。

    @ D调,因为 7z 和 rar 的命令行是不一样的。 7z 也不错。我懒得去研究 rar 的命令。

    回复

  23. 23. ero # 2008/07/29 20:29

    小众能否帮我找一款能够限制上网时间的软件
    我弟弟在家没日没夜地玩网络游戏
    讲他也不听,态度极其恶劣。。。
    请求帮助了!

    要隐蔽性够强的哦!
    万分感谢

    回复

    scavin # 2008/07/29 20:51

    限制不起什么作用的,在家玩不了会去网吧。。。

    这个还得说服教育

    回复

    sfufoet # 2008/07/30 10:03

    试试这个:http://www.jpexe.com/pcmather.html

    回复

    sfufoet # 2008/07/30 10:04

    另,我搜索到百度知道的一个解答:

    把他不碰网络生活健康的兄弟样的朋友找来,请他们帮忙,带你弟弟经常玩些健康的东西,比如看漫画啊,画画啊之类的,很快就没上网的瘾了,我以前也很爱上网,天天跑网吧,后来喜欢上了绘画,画了很多,都不想上网了,总之,给你弟弟一个健康向上的生活环境

    回复

  24. 24. D调 # 2008/07/29 20:48

    http://zhidao.baidu.com/question/21113257.html
    这里的很全,连原因都和你的一样

    不过我觉得讲他也不听的话,隐蔽性够强又有什么用呢

    回复

  25. 25. ero # 2008/07/29 21:05

    关键是他讲不听啊….
    就在刚才,我刚洗完澡,下楼拿点东西
    一上来就见他坐电脑前了,刚开机
    一见我回来就去客厅看电视了……

    无奈啊

    回复

    馄饨s # 2008/07/30 08:52

    话说我是个小孩(16岁,算是半个未成年人)……
    其实你可以引导一下你的孩子学学编程啊Flash什么的,不要经常打游戏就好了吧……
    强制性让小孩不打电脑好像很少成功的吧……不如让孩子做点有点意思的事。

    某个学VC和Eclipse+JAVA的初中毕业生飘走……

    回复

    馄饨s # 2008/07/30 08:54

    追加:不过网游确实是害人的。

    回复

  26. 26. nzone # 2008/07/30 08:48

    不知道这和 7-zip 比有啥优势,7-zip 有关联的哦!

    回复

    sfufoet # 2008/07/30 09:28

    优势在于智能。请仔细看文章。

    回复

    林卯 # 2008/07/31 01:50

    7-zip的皮肤还是不敢恭维的……
    不过在DA看见有人通过修改资源弄的tango风格7-zip很好。

    回复

  27. 27. fonlan # 2008/07/30 15:20

    既然不显示进度条不过我感觉在托盘区弹出个气泡显示“解压中……”应该没问题吧

    回复

    sfufoet # 2008/07/30 16:51

    好的。谢谢建议。

    回复

  28. 28. skywolf # 2008/07/30 16:16

    很好的工具
    只是“发送”菜单弹出太慢了,还是希望能采取别的方式

    回复

    sfufoet # 2008/07/30 16:50

    谢谢建议。

    回复

  29. 29. 天堂之门 # 2008/07/31 01:48

    我也做了个脚本的,请感兴趣的移步本人博客或AutoHotkey爱好者论坛。

    回复

  30. 30. ok? # 2008/07/31 08:58

    好像有个限制 就是不能解压超过四个文件以上

    回复

  31. 31. 山河水 # 2008/07/31 22:40

    要是能够最小化到托盘就完美了 :)

    配合TC命令行真的很爽

    回复

输入昵称与邮箱就可以评论

称呼*

邮箱*

网址