伤心的笔 发表于 2012-7-16 22:16:05

压缩解压工具UHARC

本帖最后由 伤心的笔 于 2012-7-17 08:12 编辑

大名鼎鼎的Uharc,压缩率超高的软件。

简介
  UHarc,是一款极品压缩软件,号称世界上压缩比最高的软件。作者Uwe Herklotz。其超强压缩比(压缩率约20%),可以让ZIP,RAR,ACE,7-Zip汗颜。越大的文件,越能体现出UHarc压缩的优势。不过UHarc提高了压缩率,却是以花费更多的时间为代价的。UHARC有Win32系统和Dos32系统两个程序版本。
  由于受到WinRAR本身的限制,很多文件还是无法压缩得更小,这时我们可以试试UHarc--号称世界上压缩比最高的软件。这是一款极品压缩软件,作者Uwe Herklotz,其超强压缩比(压缩率约20%),可以让ZIP,RAR,ACE,7-Zip汗颜,但速度之慢,也令人汗颜。这正是应验一句老话:“鱼和熊掌不可兼得。”


命令行版(这个是我费了九牛二虎之力才找到的珍贵资源):
GUI版[UHARC GUI 4.0.0.2]:http://dl.pconline.com.cn/html_2/1/74/id=8549&pn=0.html

提示
选择PPM压缩模式方可达到极限压缩率。

评论
我用它压缩39.6Mb的Winrar文件,竟压缩为13Mb。
我压Longhorn4008+Longhorn4015(差不多1.15G),压缩后大小为698Mb!几乎减掉了一半,文件越大压缩比越高
沈连营 发表于 2008-11-18 07:41 https://www.dianbo.org/static/image/common/back.gif
UHARC现在最新版为3.06汉化版。经过我实际验证,压缩解压缩文件完全正常绝对安全(当然其他方面的因素造成文件损坏不可避免比如硬盘坏道、突然停电、RPWT等等^_^)2.0汉化版的压缩同样文件性能最好。3.06版的功能多一点,带有校验支持单个文件速度比2.0的快不少等。其实它是能把同样的文件(或者是大多数一样的部分)能压缩到一块。举个简单的例子,比如你把同样的MP3复制几十个,名字随便改(用2.0版的随便改后缀名也照样压缩很强,这点比3.06好)。然后用UHARC压缩,能压到比一首MP3还小。是winRAR压缩率的几十倍!!!如果你用几百首同一个MP3它也能压到比一首还小,压缩率就是winRAR的几百倍了,当然这是极端的例子。也就是说在很多重复文件的情况下winRAR根本没法和它比。适合做数据备份用。我把公司的数据库备份文件(每天都备份的)弄了1.95G(它只支持2G以下的文件,不然压缩比更高)用UHARC3.06压缩到只有9.56M!!!惊人吧。当然时间花了有半个多小时。这个用winRAR无论如何也压不到的。

个人经验,压缩大量重复文件但后缀名不同的用UHA2.0,在这种情况下要比3.06的能力强,这是我做实验得出的结果,实际好像没有这样的情况。一般情况用3.06的,比2.0的压缩率高速度还快三分之一以上,但2.0的压缩包解压要比3.06的快。在压缩率和速度兼顾的情况下可以用7- Zip,7-Zip也有这样压缩重复文件的压缩能力,只是没有UHARC的压缩能力强,但速度要快不少。综合讲是完全可以淘汰winRAR的。

另再说几句,其实还有一个WinUDA是压缩率比UHARC还高。但速度慢的让人无法忍受,是我见过的压缩率最高,速度最慢(比蜗牛还慢)的压缩软件。我用它压缩十几M的文本文件(里面内容大量重复的)。WinUDA用了N长时间(我忍受的极限)几乎把那些文件给压缩没了,压缩能力确实无人匹敌(其实也就是比UHARC强一点)。但速度简直要人疯了。不推荐用它。除非你有炫耀给别人看它压缩能力的癖好^_^.

综上所述:

1.普通应用推荐用7-Zip。它的压缩速度压缩能力都不错。
2.压缩大量数据备份(不经常用到的文件)用UHARC,虽然速度慢,但存放起来省地方,毕竟不是经常压来压去的。浪费一次时间也值得。
3.跟别人比压缩能力的话用WinUDA,同时也是和别人比耐心的时候了。

以上只是我的个人观点。我找到了更客观的比较评论,http://dwing.51.net/test.htm 。在这里你能看到更多的强力压缩软件和更直接的数据结果。
愿您开心!!!

伤心的笔 发表于 2012-7-16 22:20:22

命令行版UHARC使用详解

命令行版UHARC使用详解
    UHARC.EXE      Win32下运行的主程序
    UHARCD.EXE   Dos32下运行的主程序
    UHARCSFX.EXE   Win32下运行的自解压程序
   
===< 使用说明 >===============================================================

UHARC 参数 [-开关] 压缩包名[.uha] [压缩文件名@列表文件名!排除文件名]
参数:
~~~~~~~~~
    a   创建压缩文件或添加文件到压缩文件中    e   解压文件到当前目录
    m   创建压缩文件并删除原文件            x   解压文件到根目录
    l   显示压缩包里的文件                  t   测试压缩文件是否损坏
开关:
~~~~~~~~~
    ac[-,+]   清除文件属性               ae过滤带特定属性的文件
    b      设置最大文件缓存大小       bpb[-,+]用bpb代替百分率
    d<0..2>   设置显示模式               ed[-,+]   储存空目录
    idle      设置空闲进程优先级         lg输出日志到文件
    m<0..3,x,z> 设置压缩模式               md   设置字典大小
    mm[-,+]   多媒体文件检测             o[-,+,p]设置改写方式
    pw设置密码                   p<-,r,f>设置路径记录模式
    r[-,+]      压缩的文件中是否包括子目录 t   设置文件解压目录
    vm[-,+]   设置是否使用虚拟内存       y[-,+]    设置是否启用自动应答
* 命令行模式下直接输入uharc可获得帮助.
* 参数必须紧跟uharc.
* 开关必须紧跟参数,你可以使用 "-" 或 "/" 作为开关的连接符.
* 可以指定压缩文件的后缀名,如果不指定将使用默认的后缀名 ".uha"
* 你可以建一个列表文件,列表文件里的文件名要加前缀@.
    如果命令行或文件列表中的文件名有 "!"前缀, 那么这个文件将不被处理.
    以下标记将会被uharc识别:"空格, tab and newline" .
    带空格的文件名必须用双引号括起来.
    文件列表中的每行不能超过4095个字符.
* 命令行和文件列表可以使用通配符,通配符的使用规则和MS-DOS一样.
* 使用"-r"可以包含字目录

---<参数介绍 >----------------------------------------------------------

   a    创建或添加文件.
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      如果一个文件已存在, UHARC 将询问是否覆盖.
      除非你使用"-y"将默认的覆盖方式改为全部选是.
      此时这些开关是有效的: ac ae b bpb d ed lg m md mm o p pw r y

   e    解压文件到当前目录.
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      使用开关 "-t"可以更改解压目录.
      此时这些开关是有效的: b d lg o pw t y

   l    显示压缩包里的文件.
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      使用以下按键阅读文件里标:
             ESCAPE      =退出列表
             TAB         =不用在显示一页后暂停
             RETURN      =下一行
             other keys=下一页
      使用开关 "-y", UHARC 在显示完一页后不会停止,
      使用开关 "-d2", 显示详细信息
      此时这些开关是有效的: b bpb d lg pw y

   m    创建压缩文件并删除原文件.
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      如果一个文件已存在, UHARC 将询问是否覆盖.
      除非你使用"-y"将默认的覆盖方式改为全部选是.
      压缩结束后,程序将删除除主目录以外的所有文件.
      此时这些开关是有效的: ae b bpb d ed lg m md mm o p pw r y

   t    测试压缩文件是否损坏.
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      此时这些开关是有效的: b d lg pw y

   x    解压文件到目录.
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      uharc将使用储存在压缩文件里的路径来解压文件.
      如果在创建文件是使用了 "-pf",将包含分区号.
      如果使用了"-t", 就可以选择解压目录
      
      此时这些开关是有效的: b d lg o pw t y

注意:在解压或压缩过程中,可以使用ESC退出.
         
---<开关介绍 >----------------------------------------------------------

--         关闭开关检测
               ~~~~~~~~~~~~~~~~~~~~~~
               如果文件名中有" - "等和开关一样的字符时,
               这个开关是很有用的.uharc将不会把文件名中的特殊字符识别为开关.
               以免出错.
-!<文件名>   设置在处理时要被忽略的文件
               ~~~~~~~~~~~~~~~~~~~~~~~~~~               
               默认为: -!!

-@<文件名>   列表文件的文件名
               ~~~~~~~~~~~~~~~~~               
               默认为: -@@

-ac[-,+]   清除文件属性(对文件夹无效)
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               -ac[+]文件在压缩文件中的原有属性,解压后将被清除.
               -ac-    不清除文件的原有属性.
               默认为: -ac-

-ae    压缩时具有以下属性的文件将被过滤而不被处理
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~               
               可过滤具有以下属性的文件:
               "A"   存档
               "H"   隐藏
               "R"   只读
               "S"   系统
               用"+"和"-"来设置过滤器.
               例如:"-aeA-H+" 表示在要压缩的文件中,
                      不具有存档属性或具有隐藏属性的文件将被过滤.
               默认为: 不指定

-b      设置文件缓存大小(单位: KB).
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               最小为 50 KB.
               默认为: -b1024

-bpb[-,+]    显示bpb 而不是 %
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~
               -bpb[+] 显示bpb.
               -bpb-   显示%.
               默认为: -bpb-

-d<0..2>   设置显示模式.
               ~~~~~~~~~~~~~~~~~
               -d0   没有信息显示,除了提问.
               -d1   显示少量信息.
               -d2   显示详细信息.
               默认为: -d1

-ed[-,+]   保存空的目录
               ~~~~~~~~~~~~~~~~~~~~~~~
               -ed[+]保存空的目录.
               -ed-    压缩时除去空目录.
               
               默认为: -ed-

-idle      设置空闲进程优先级 (Win32 only)
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               指定uharc以低的优先级并做为后台程序运行,
               默认为: 不指定

-lg    输出日志到文件.
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               默认为: 不输出日志到文件

-m<0..3>   设置压缩模式.
               ~~~~~~~~~~~~~~~~~~~~~
               -m0   不压缩.
               -m1   使用 ALZ:1 (低压缩比,快速) 压缩模式.
               -m2   使用 ALZ:2 (一般压缩比,一般速度) 压缩模式.
               -m3   使用 ALZ:3 (高压缩比,慢速) 压缩模式.
               -mx   使用 PPM 压缩模式.
               -mz   使用 LZP 压缩模式.
               默认为: -m2

-md       设置字典大小 (单位: KB).
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               可用值:
               n = 2 的幂,幂值从 1 到 32768
               字典文件选择规则:
               1. 选择的字典文件大小将小于设定值.
               2. 如果设定值大于要压缩的数据大小,将选择尽可能合适的字典.
               3. 如果系统的内存不足,uharc将选择更大的字典来压缩文件.
                  大的字典文件需要的内存要少.
               默认为: -md4096   即4M

-md[-,+]   启用不基于字典文件的压缩方式.
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               仅当设置了 "-m1", "-m2", "-m3" and "-mx"等压缩模式时有效.
               -md[+]启用不基于字典文件的压缩方式.
               -md-    禁用不基于字典文件的压缩方式.
               对于音频文件和图像文件,基于字典的压缩方式并不是的最好的方法.
               使用不基于字典文件的压缩方式将能得到更好的压缩效果和速度.
               默认为: -md+

-mm[-,+]   启用多媒体文件检测和相应的压缩方式.
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               -mm[+]启用多媒体文件检测和相应的压缩方式.
               -mm-    禁用多媒体文件检测和相应的压缩方式.
               对于一些被包含在其他数据文件中的多媒体文件进行相应的压缩.
               默认为: -mm+

-o[-,+,p]    设置覆盖模式.
               ~~~~~~~~~~~~~~~~~~~
               -op   覆盖文件前提示用户.
               -o[+]   直接覆盖不提示.
               -o-   不覆盖文件.
               使用带"-y" 的-op 将取得和使用 -o[+] 一样的效果.
               如果出现提示,用户可以用以下回答:
               "Y"   是,覆盖文件.
               "N"   否,不覆盖文件.
               "A"   全部覆盖.
               "C"   取消并退出程序.
               默认为: -op

-p<-,r,f,e>设置路径记录模式.
               ~~~~~~~~~~~~~~~~~
               -p-   只记录文件名而不记录路径.
               -pr   记录相对路径.
               -pf   记录包含分区号的绝对路径.
               -pe   记录相对路径,并忽略在命令行和列表文件中指定的路径.
               相对路径是指文件在分区里的位置,用这种方法备份的文件
               可以还原到某个分区的正确位置.
               
               默认为: -pr

-ph[-,+]   加密所有文件及文件夹及其所有信息,如文件大小,属性等.
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               -ph[+]启用.
               -ph-    不启用.
               默认为: -ph+

-pw设置密码
               ~~~~~~~~
               -pw   要求用户输入密码.
               -pw使用 "s" 作为默认密码.
               
               默认为: 不指定即没有密码

-px          压缩或解压完成后提示用户是否退出
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               
-r[-,+]      压缩的文件中是否包括子目录.
               ~~~~~~~~~~~~~~~~~~~~~~~~~~
               -r[+]   包括子目录.
               -r-   不包括子目录.
               
               默认为: -r-

-sfx   创建自解压文件
               ~~~~~~~~~~~~~~
               将把文件解压到当前目录.自解压程序支持参数 "x", "e" 和 "t"
               创建自解压文件时必须把UHARCSFX.EXE放到当前目录下或与批处理文件
               相同的目录.
               可以使用以下dos命令将一个普通压缩文件转换为自解压文件:
               COPY /B UHARCSFX.EXE+"文件名.uha" "文件名.exe"

-t       解压文件的目录.
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               使用参数"e",文件将被解压到当前目录.
               使用参数"x",文件将被解压到根目录.            
               dir为要解压到的目录.
               默认为: 不指定

-vm[-,+]   设置是否使用虚拟内存
               ~~~~~~~~~~~~~~~~~~~~~~~~
               -vm[+]使用虚拟内存.
               -vm-    不使用虚拟内存.
               默认为: -vm-

-y[-,+]      设置是否启用自动应答.
               ~~~~~~~~~~~~~~~~~~~~~
               -y[+]   启用自动应答,并对全部提问以"yes"应答.
               -y-   不启用自动应答.
               默认为: -y-

---< 环境变量 >----------------------------------------------

使用环境变量"UHARC_OPT"可以设定uharc程序的默认参数和开关.
但这些参数和开关可以被命令里的参数和开关替换.

例如:
~~~~~~~~
    设置环境变量 UHARC_OPT=-d2 -p- -lgc:\uharc.log
    当程序执行时, 默认将显示详细信息,并将日志存放到 "C:\UHARC.LOG"里.
   
注意:如果环境变量里包含日志文件开关, 将不能直接禁用日志记录.
         只能在命令行中使用开关"-lgNUL"来代替日志开关.
         "-lgNUL"将忽略默认的日志文件设置并将所有的日志问写入到NUL file

===<例子 >============================================================

1.    UHARC a archive *.dll @c:\list *.exe
    压缩所有 "*.DLL", "*.EXE"文件 和在"C:\LIST"列表文件里包含的文件
    到"ARCHIVE.UHA"中.

2.    UHARC a -m3 -r -pf -o backup.arc c:\*.ini d:\*.ini c:\*.cfg d:\*.cfg
    使用ALZ:3压缩格式压缩所有在C:盘和D:盘的 "*.INI" and "*.CFG" 文件
    到"BACKUP.ARC"中. 而且uharc会保存所有文件的绝对路径.
    如果已存在一个"BACKUP.ARC"文件,uharc直接覆盖而不提示.

3.    UHARC m -mz -md64 -mm- -r text c:\text\*.txt
    创建压缩文件TEXT.UHA并删除所有在"C:\TEXT\" 及其子目录中的 "*.TXT" 原文件.
    使用LZP压缩模式,选择的字典文件将小于64K.
    禁用多媒体检测和压缩.
   

4.    UHARC l -d2 -lguharc.lst archive a*.doc b*.doc
    显示在压缩文件"ARCHIVE.UHA"中的所有"a*.doc"和"b*.doc"文件.
    并将结果保存为日志文件"UHARC.LST".
    可以用来制作列表文件.

5.    UHARC x -y arc.uha
    将"ARC.UHA"中的文件以他们原来的绝对路径解压.
    除了解压过程中的程序错误,以yes 回答所有提问.
6.    UHARC e -td:\temp archive readme.txt
    将文件解压到 "D:\TEMP\"目录中.如果此目录不存在,UHARC自动创建它.

7.    UHARC e -o- sounds @mysounds.lst
    按照列表文件 "MYSOUNDS.LST" 中列出的文件清单,
    将所有清单中的文件解压到当前目录.
    并且不会覆盖已存在文件.
8.    UHARC t -d2 -lglog archive
    检测"ARCHIVE.UHA" 文件是否损坏,并将日志储存到文件"LOG"中.

9.    UHARC a -m3 -r -sfx MyGame "Games\My Favourite Game\*.*"
    使用ALZ:3压缩格式,将目录"Games\My Favourite Game\"中的所有文件
    压缩为自解压格式文件"MyGame.exe"
页: [1]
查看完整版本: 压缩解压工具UHARC