标题：UHarc
软件简介
  UHarc运行界面由于受到WinRAR本身的限制，很多文件还是无法压缩得更小，这时我们可以试试UHarc--号称世界上压缩比最高的软件。这是一款极品压缩软件，作者Uwe Herklotz，其超强压缩比（压缩率约20%），可以让ZIP,RAR,ACE,7-Zip汗颜，但速度之慢，也令人汗颜。这正是应验一句老话：“鱼和熊掌不可兼得。”
操作指南
命令简介（UHARC对一般文件的压缩比可以达到20%左右！真的很厉害，但速度之慢，也令人汗颜）
UHARC命令简介 
UHARC是一个高性能的文件档案库存储器，这个压缩包包含4个文件：
UHARC.EXE Win32系统的程序版本 
UHARCD.EXE Dos32系统的程序版本 
UHARCSFX.EXE 创建自解压文件的程序版本（Sfx-Stub for Win32系统） 
UHARC.TXT 此文本文件
新特性0.6a版本的新特性 
这个程序可以运行在任何386或以上的计算机上。内存需求的大小依赖于你所选择压 
缩方式。一次操作的文件数目限于你的可用内存的大小，当前任何版本都不能操作 
大于2GB的未压缩的文件档案。
使用方法===< 使用方法 >========================================================= 
用法：UHARC 命令字符 [-参数..] 存档文件名[.uha] [文件名..@列表文件名..！排除..] 
命令字符：
~~~~~~~~~ 
a 创建档案文件/添加文件 e 从当前的文件目录解压文件 
m 创建档案文件/移动文件 x 从完整路径解压文件 
l 档案文件里的文件列表 t 测试档案文件 
参数：
~~~~~~~~~ 
ac[-,+] 清除文件档案的存档属性 ae<attr> 设置平均修复时间排除... 
b<n> 设置文件缓冲区上限的大小 bpb[-,+] 输入输出的百分比 
d<0..2> 设置显示方式 ed[-,+] 储存空目录 
idle 设置空闲进程的优先级 lg<file> 输出日志文件 
m<0..3,x,z> 设置压缩方式 md<n> 设置字典大小 
mm[-,+] 主存储器检测 开/关 o[-,+,p] 设置改写方式 
pw[passwd] 设置密码 p<-,r,f> 设置管理路径 
r[-,+] 编译子目录 t<dir> 设置解压的目标路径 
vm[-,+] 设置虚拟内存的使用方法 y[-,+] 对所有的询问回答是 
* 要获取命令行的帮助，请输入"UHARC"(不要带任何参数）。
* 命令字符必须置于"UHARC"的后面。
* 任何一个参数都必须跟在命令字符之后。UHARC支持在参数字符选项前使用 
"-"或者"/"。
* UHARC的档案文件名必须是命令行的第一个文件名。
如果它没有文件扩展名，UHARC将增加缺省的（".UHA")扩展名。
* 如果命令行的文件名有"@"前缀，那就意味着包含对此文件的操作， 
如果命令行的文件名有"!"前缀，那就意味着排除对此文件的操作。
允许在文件名之间插入分隔符，如：空格，tab控制符和换行符。
文件名如果有空格须附上双引号。一行上的文件列表不能超过4095字节。
* 文件名的通配符允许在命令行的文件列表中，但不包含档案文件名。通配符
的使用是按照MS-DOS的约定而来的。"*.*"指的是所有文件。"*.txt"指的是 
扩展名为".TXT"的所有文件。"?B*.*"指的是第二个字符是"B"的所有文件 
* 如果没有指定文件通配符，所有文件（"*.*")将会被处理（使用"-r"来查看字符录）. 
命令字符---< 2.1. 命令字符 >---------------------------------------------------------- 
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 档案文件里的列表文件 
~~~~~~~~~~~~~~~~~~~~ 
使用参数"-y"，UHARC在一页之前不会暂停，你可以使用下面的键：
ESC键 = 取消 (退出程序） 
TAB键 = 禁止暂停 
回车键 = 下一行 
其它键 = 下一页 
使用参数"-d2"，文件名不会被缩短，更多的信息会被显示出来 
依次输入下列参数来看看效果：b bpb d lg pw y 
m 创建档案文件且移动匹配文件 
~~~~~~~~~~~~~~~~~~~~~~~~~~ 
如果有一个档案文件名已经存在，UHARC将会询问是否重新写入此文件 
除非你你改变缺省的重新写入方式或使用"-y"。如果压缩成功，UHARC 
会删除匹配文件（非目录）。
依次输入下列参数来看效果：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键来终止进程（显示问题时需回答是）， 
（当为列表文件时，没有附加的问题）
参数---< 2.2. 参数 >---------------------------------------------------------- 
-- 停止参数的扫描 
~~~~~~~~~~~~~~ 
这个参数告诉UHARC没有参数需要处理。这是非常有必要的。如果档案 
文件名以"-"字符开始，没有"--"参数会认为它是一个参数。
-!<char> 设置排除的说明符 
~~~~~~~~~~~~~~~~ 
定义这个字符是为了用作排除的说明符。如果一个在命令行的文件名 
或列表文件前有排除说明符"!"，那么它将被排除。如果后面没有字符， 
看起来是（"-!")，它将丧失它的作用。这个选项需小心的使用。
缺省值：-!! 
-@<char> 设置文件列表说明符 
~~~~~~~~~~~~~~~~~~ 
定义这个字符是为了使用文件列表说明符。它的用法是在命令行的文件 
列表前加字符"@"。如果后面没有字符，看起来是（"-@")，它将丧失它 
的作用。这个选项需小心的使用。
缺省值：-@@ 
-ac[-,+] 清除文件存档属性 
~~~~~~~~~~~~~~~~ 
-ac[+] 清除储存在档案文件里的文件存档属性。
-ac- 不要清除文件的存档属性。
如果此选项有效并且压缩成功，UHARC将会清除储存在档案文件里的文件 
存档属性（目录不会受到影响）。
这个选项只有在添加命令有效果 
缺省值：-ac- 
-ae<attr> 设置属性的过滤器 
~~~~~~~~~~~~~~~~ 
定义基于文件属性的过滤器。"+"是设置文件属性，"-"为清除文件属性 
文件属性：
"A" 存档属性 
"H" 隐藏属性 
"R" 只读属性 
"S" 系统属性 
示例：参数"-aeA-H+"指的是：文件属性去掉隐藏属性 
这个选项只有在添加命令和移动命令有效果 
缺省值：没有指定 
-b<n> 设置最大文件缓冲区大小（KB) 
~~~~~~~~~~~~~~~~~~~~~~~~~~ 
用分配文件缓冲区的大小来压缩，最小的文件缓冲区大小是50KB 
缺省值：-b1024 
-bpb[-,+] 显示输入输出系统参数而不是用百分比 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-bpb[+] 显示输入输出系统参数
-bpb- 显示压缩的百分比 
缺省值：-bpb- 
-d<0..2> 设置显示方式 
~~~~~~~~~~~~ 
-d0 静止方式（除了问题，不显示过程信息）。
-d1 显示一些过程信息 
-d2 显示详细信息（文件信息，详细列表）。
缺省值：-d1 
-ed[-,+] 存储空目录 
~~~~~~~~~~ 
-ed[+] 存储空目录。
-ed- 不要存储空目录 
这个选项只有在添加命令和移动命令有效果。
缺省值：-ed- 
-idle 设置空闲进程优先级（仅Win32） 
~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
这个选项强制UHARC设置自己的处理方式为空闲优先级类，这就意味 
着UHARC是后台任务的执行方式，对一般的操作系统只有轻微的影响 
（我们有足够多的内存）。这种方式适合处理大型的数据，而不会对系 
统产生长时间的阻塞。
缺省值：没有指定 
-lg<file> 输出UHARC日志文件 
~~~~~~~~~~~~~~~~~ 
如果UHARC未能打开文件，则不会创建日志文件（也不会有错误信息）。
显示模式的设置也没有效果。
缺省值：不输出日志文件 
-m<0..3> 设置压缩方式 
~~~~~~~~~~~~ 
-m0 不使用压缩 
-m1 使用ALZ:1 （快） 压缩方式 
-m2 使用ALZ:2 （普通） 压缩方式 
-m3 使用ALZ:3 （最好） 压缩方式 
-mx 使用PPM 压缩方式 
-mz 使用LZP 压缩方式 
ALZ使用高级的LZ77压缩算法编码。"-m1"是快速使用ALZ的方式，它 
牺牲了压缩比率来获得比较快的压缩速度。"-m3"使用了最好的ALZ 
的压缩方式，但需要更多的时间。"-m2"使用的压缩比率和压缩速度 
是比较适中的，它也是缺省的压缩方式。一般解压缩的时间接近于压 
缩的速度，但比它稍快些。
PPM方式按照-4-2-1-0的顺序用LZP方式来压缩。在大多数情况下，这 
种方式提供了最好的压缩结果。
LZP方式使用同样的字典大小和PPM方式来压缩。但是按照更简便的 
-1-0顺序来压缩的。
这里还有2种额外的方式（未来的版本中可能不支持）：
-mr 使用简单的RLE压缩方式 
-mw 使用LZ78可选择字典大小的压缩方式 
缺省值：-m2 
-md<n> 设置字典的大小（in KB) 
~~~~~~~~~~~~~~~~~~~~~ 
如果字典没有使用，此选项就没有任何作用。
有效的大小：
-m1..3,-mx,-mz n = 2的1到32768次方或者"a".."p" 
-mw n = 2的1到32次方或者"a".."f" 
一个字符可以代替设置的大小数字，如："-mda"等于"-md1" 
"-mdk"等于"-md1024"。
字典大小的选择：
⒈ 使用选项"-md<n>",UHARC将不会选择一个大于<n>；的文件。
如果"-md<n>"没有被使用，UHARC将不会使用一个缺省的大 
小（n=4096）。
⒉ 如果数据流量小于<n>；，UHARC将会使用更小的字典大小来创建数据。
⒊ 如果当前的选择没有足够的内存来完成，UHARC将会使用更 
大的字典来尽可能的利用可用内存。
缺省值：-md4096 
-md[-,+] 让基于字典压缩（丧失/起）作用 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
这仅在"-m1"，"-m2"，"-m3" 和 "-mx"方式有效果。
-md[+] 让基于字典压缩起作用 
-md- 让基于字典压缩丧失作用 
通常，不让基于字典压缩起作用，所得到的压缩比率几乎总是不好。
但是对于同一种数据类型（波形音频或摄影的真彩色照片），它的压缩 
比率不会很受影响的。使用"-md-"参数会显著的加快压缩的速度。如 
过让基于字典压缩丧失作用，"-m1"，"-m2"，"-m3"这三中方式之间 
几乎没有什么差别。
缺省值：-md+ 
-mm[-,+] 让内置的多媒体压缩探测（丧失/起）作用 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
-mm[+] 让内置的多媒体压缩探测起作用 
-mm- 让内置的多媒体压缩探测丧失作用 
UHARC的多媒体压缩探测支持很多数据类型（8/16位单声道/立体声道 
的波形音频，24位真彩色图片和其它使用8/16/24/32位来记录大小 
的数据类型）。它也可能会探测到另一些象多媒体类型的其它数据类型 
（例如：可执行文件）。因此除非用户知道哪些不是多媒体数据类型 
可以不使用探测（例如：压缩文本）。
缺省值：-mm+ 
-o[-,+,p] 设置改写方式 
~~~~~~~~~~~~ 
-op 在重写文件之前提示用户 
-o[+] 总是不询问就重写文件 
-o- 决不重写文件 
使用-op 和 -y的效果等同于-o[+]。
如果UHARC显示一个重写的问题，用户可以选择如下的选项：
"Y" 是，改写当前文件。
"N" 否，不要改写当前文件。
"A" 自动总回答为是并改写当前文件。
然后所有改写请求都为是。
"C" 取消，不要改写当前文件并退出程序。
缺省值：-op 
-p<-,r,f,e> 设置路径方式 
~~~~~~~~~~~~ 
-p- 不要储存路径（拒绝路径名）. 
-pr 储存相对路径
-pf 储存包括驱动器字符的完整路径。
-pe 储存相对路径但是除了所有在命令行列表的指定路径。
使用选项"-pr"，当前路径被储存起来（驱动器字符不储存）。使用选项 
"-pf"，很可能是从不同的驱动器来备份所有的数据。使用选项"-pe"， 
和"-pf"一样，但是在命令行列表的指定路径除外。
缺省值：-pr 
-ph[-,+] 档案库存储器标题的加密 
~~~~~~~~~~~~~~~~~~~~~~ 
-ph[+] 加密档案库存储器的标题。
-ph- 不加密档案库存储器的标题。
档案库存储器标题包含文件夹名和文件名，大小...来完成档案文件的创建。
如果档案库存储器的标题被加密了，需要正确的密码来使它读取标题。
缺省值：-ph+ 
-pw[passwd] 设置密码 
~~~~~~~~ 
-pw 请求用户输入密码。
-pw
 使用"s"作为密码 
使用参数"-pw"时为了安全起见，会请求用户输入两遍密码（输入的密码 
不会显示在屏幕上）。
缺省值：没有指定 
-px 当程序退出前暂停 
~~~~~~~~~~~~~~~~ 
这个参数告诉UHARC等待你敲一个键之后退出。如果控制台窗口将要关闭 
它会自动的等到程序完成后关闭。
-r[-,+] 设置包含子目录的方式 
-r[+] 包含子目录。
-r- 不要包含子目录。
如果有效，匹配的文件会搜索到所有的子目录（不管目录名的属性）。
缺省值：-r- 
-sfx[stub] 创建自解压档案文件（仅为Win32版本!) 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
使用这个选项UHARC将创建一个自解压档案文件（SFX）。自解压档案文 
件是Win32可执行文件，它被加到档案文件后面，运行一个自解压档案 
文件不需要任何选项（"x"命令），它解压到当前目录。自解压档案文件 
支持"x"，"e" 和 "t"命令，但其它命令不支持。
[stub]是一个可选参数来使用于自解压档案文件，在缺省的时候 
UHARCSFX.EXE会自动查找它的自己所在的当前目录。
自解压档案文件的选项只能用在被创建的自解压档案文件上，在DOS命令 
下，这个命令只能用于转换一个存在的UHARC档案到自解压档案文件中：
COPY /B UHARCSFX.EXE+"archive.uha" "archive.exe" 
-t<dir> 设置解压的目标目录 
~~~~~~~~~~~~~~~~~~ 
UHARC将会在目录<dir>；里储存所有的文件。如果<dir>；目录不存在， 
UHARC会创建它。
和选项"e"命令一起使用，<dir>；将会被当成当前目录来解压，和选项 
"x"命令一起使用，<dir>；将会被当成根目录来解压文件。
缺省值：没有指定 
-vm[-,+] 设置是否使用虚拟内存
~~~~~~~~~~~~~~~~~~~~ 
-vm[+] 使用虚拟内存
-vm- 不使用虚拟内存
虚拟内存的使用使UHARC丧失了在程序开始时检查检查空闲的物理内存 
的功能，以及不需要更多的内存来使用压缩方式。应适当的使用此选 
项，因为还不能保证是否可以在一个多任务系统中使用。
缺省值：-vm- 
-y[-,+] 设置自动应答方式 
~~~~~~~~~~~~~~~~ 
-y[+] 对所有的问题回答是。
-y- 不要自动回答问题。
使用-y[+]选项，所有的询问，除了关键性错误信息外，都不会 
在屏幕显示，并自动都回答是。
缺省值：-y-
环境变量---< 2.3. 环境变量 >---------------------------------------------- 
有必要定义一个缺省的环境变量选项"UHARC_OPT"。只要UHARC被执行它就查找 
环境变量的值，然后象分析命令行参数那样来分析它。任何环境变量参数都优 
于命令行。
示例：
~~~~~~ 
SET UHARC_OPT=-d2 -p- -lgc:\uharc.log 
当UHARC被执行是，它会使用冗长的显示方式，并输出日志文件到缺省的目录：
"C:\UHARC.LOG"中。
注意：如果这个环境变量包含了日志文件参数，它不可能立即让日志文件无效。
使用命令行参数"-lgNUL"来代替重写日志文件(无效输出）。
示例===< 示例 >============================================================== 
⒈ UHARC a archive *.dll @c:\list *.exe 
这将使用缺省的压缩方式压缩当前目录下所有的DLL文件，所有的EXE文件和"C:\LIST" 
目录里的所有文件到"ARCHⅣE.UHA"这个档案文件中。
⒉ UHARC a -m3 -r -pf -o backup.arc c:\*.ini d:\*.ini c:\*.cfg d:\*.cfg 
这将使用ALZ:3压缩方式压缩c盘，d盘的所有INI文件和CFG文件到"backup.arc"这个 
档案文件中。并且储存包含有驱动器字符的完整路径，所以它将恢复正确驱动所有 
文件。如果"backup.arc"文件已存在，UHARC将不会询问就改写文件。
⒊ UHARC m -mz -md64 -mm- -r text c:\text\*.txt 
这将使用LZP方式并且最大为64K不要使用多媒体探测压缩从TEXT.UHA（包括子文件夹） 
中移动所有TXT文件到C:\TEXT\里. 
⒋ UHARC l -d2 -lguharc.lst archive a*.doc b*.doc 
这将要解压档案文件"ARCHⅣE.UHA"里第一个字母是"A"或"B"的DOC文件，然后输出 
日志文件。
⒌ UHARC x -y arc.uha 
这将要从完整路径解压档案文件"arc.uha"里的所有文件。所有的问题，除了关键性 
错误都回答是，因此，如果一个文件已经存在，UHARC将会不询问用户就改写它。
⒍ UHARC e -td:\temp archive readme.txt 
这将要解压档案文件"ARCHⅣE.UHA"里的"README.TXT"文件到"D:\TEMP\"目录。
如果目录不存在，UHARC将会创建它。
⒎ UHARC e -o- sounds @mysounds.lst 
这将要解压档案文件"SOUNDS.UHA"里的"MYSOUNDS.LST"文件到当前目录，UHARC 
不会改写一个存在的文件。
⒏ UHARC t -d2 -lglog archive 
这将要测试档案文件"ARCHⅣE.UHA"的完整性并输出日志文件。
⒐ UHARC a -m3 -r -sfx MyGame "Games\My Favourite Game\*.*" 
这将使用ALZ:3压缩方式压缩Games\My Favourite Game\目录里的全部文件（包含子目录） 
并打包成一个自解压包档案（文件名为MyGame.uhr）。
注意：自解压和长文件名只支持Win32的版本