SmartUnZip – 智能解压缩

77
1 Star2 Stars3 Stars4 Stars5 Stars(快来投票)
Loading...

最新版 0.3 版

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

有这样的 AHK 脚本吗?

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

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

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

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

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

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

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

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

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

已有 77 条评论, 我要留言

  1. echo说道:

    SF!!!

  2. sfufoet说道:

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

  3. Calon说道:

    甚好!懒人有福了~

  4. nzone说道:

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

  5. 天堂之门说道:

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

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

  6. 天堂之门说道:

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

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

    • sfufoet说道:

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

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

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

  7. 李二嫂的猪说道:

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

  8. Dickey说道:

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

  9. Jin说道:

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

    • Jin说道:

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

    • sfufoet说道:

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

    • Jin说道:

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

    • sfufoet说道:

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

    • sfufoet说道:

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

    • Jin说道:

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

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

  10. tireless说道:

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

  11. D调说道:

    来晚了

  12. 天堂之门说道:

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

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

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

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

    • sfufoet说道:

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

      或者我理解错了。

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

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

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

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

  13. 天堂之门说道:

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

  14. wirx说道:

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

  15. D调说道:

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

  16. D调说道:

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

    • sfufoet说道:

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

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

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

    • D调说道:

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

    • sfufoet说道:

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

  17. D调说道:

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

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

    • 天堂之门说道:

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

  18. 天堂之门说道:

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

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

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

    • sfufoet说道:

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

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

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

  19. yeardo说道:

    ;在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. 馄饨s说道:

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

    • sfufoet说道:

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

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

    • 馄饨s说道:

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

    • sfufoet说道:

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

  21. 说道:

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

    • 说道:

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

    • sfufoet说道:

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

      我试试看。

  22. fonlan说道:

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

    • D调说道:

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

    • sfufoet说道:

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

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

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

  23. ero说道:

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

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

    • scavin说道:

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

      这个还得说服教育

    • sfufoet说道:

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

    • sfufoet说道:

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

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

  24. D调说道:

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

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

  25. ero说道:

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

    无奈啊

    • 馄饨s说道:

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

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

    • 馄饨s说道:

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

  26. nzone说道:

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

  27. fonlan说道:

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

  28. skywolf说道:

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

  29. 天堂之门说道:

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

  30. ok?说道:

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

  31. 山河水说道:

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

    配合TC命令行真的很爽

  32. 刘战超说道:

    其实我很早就注意这个问题了,经常不小心解压一大堆文件出来,搞的很乱,尤其是我喜欢先在桌面试用软件,绿色的….
    因此我就想了,首先是这个智能判断的问题(因为压缩有两种方式生成的,一个是压缩文件夹,一个是压缩文件)这个应该能解决,但是我水平有限,所以就上网找了下,结果还真有.
    感谢楼主的贡献.另外,我觉得操作还要再简化.现在人的时间都不够用了,能节省一点是一点,还有个软件,winmount,国产的,也是为了解决这个问题从智能解压出发的,他集成的右键菜单了.又方便了一步.
    不过我还想更近一步,因为我想到这个问题后,想要的答案就是:右键双击直接只能解压.真正做到一键操作.
    各位大侠看下,能实现不?
    怎么弄,autokey能搞不?

有不同想法?说说看