精华内容
下载资源
问答
  • nsis的固实(solid)压缩原理

    千次阅读 2015-06-10 09:55:31
    nsis的固实(solid)压缩 问题由解压框而来 解压框显示的逻辑是这样的 1,运行第一步是进行crc校验,...2,压缩文件固实算法是,将所有文件按照如下格式 |FileSize|FileContent|FileSize2|FileContent2|... 将所有文件拼
    nsis的固实(solid)压缩 
    
    问题由解压框而来
    解压框显示的逻辑是这样的
    1,运行第一步是进行crc校验,校验的过程大约4kb的步长读取exe文件,并做crc校验,每一次校验检查当前校验时间是否已经超过了1s,超过则展现解压框
    2,压缩文件时固实算法是,将所有文件按照如下格式 |FileSize|FileContent|FileSize2|FileContent2|... 将所有文件拼成一个大buffer,然后进行lzma压缩
         解压时,每解压一个文件设定一个500ms的超时,若解压这个文件的过程中超过了此阈值,则显示解压框
         解压某个文件时,传入这个文件解压后所在大buffer中的偏移,因此,解压过程是先从头至尾一点点解压这个dabuffer,一旦已解压的数据满足了取出这个offsert-size大小的要求即返回,因此若此文件在压缩过程中比较靠后,就会导致需要把前面的所有文件都解压出才能解压出这个文件的问题
         解压框与主窗体是互斥的,因此一旦安装的主窗体创建,则不会显示解压框

    解决:
    1,保证压缩的顺序与解压顺序一致,这样可以将单个文件的解压时间放到最小
    2,init以及插件dll保证最小使用
    3,使用resverfile强制约束某些文件优先压缩
    展开全文
  • WinRAR压缩文件参数详解

    千次阅读 2017-02-10 18:14:14
    将D:/wk.doc 压缩为:final.rar  d:/winrar/rar a d:/final.rar d:/wk.doc  将final.rar中的wk.doc解压到F:盘  rar e d:/final.rar F:  将final.rar转换成自解压文件  rar s final,rar(默认转换到...
    我的实例: 
    
    将D:/wk.doc 压缩为:final.rar 
    d:/winrar/rar a d:/final.rar d:/wk.doc 

    将final.rar中的wk.doc解压到F:盘 
    rar e d:/final.rar F: 

    将final.rar转换成自解压文件 
    rar s final,rar(默认转换到同级目录下了) 

    给自解压文件(.exe)添加注释(设置默认解压路径等) 
    rar c -zwk.txt d:/final.exe 

    直接创建自解压文件: 
    rar a -sfx d:/cc.exe d:/cc.txt 


    用法: rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件...> 
    <@列表文件...> <解压路径\> 
    <命令> 
    a 添加文件到压缩文件 
    c 添加压缩文件注释 
    cf 添加文件注释 
    ch 改变压缩文件参数 
    cw 写入压缩文件注释到文件 
    d 删除压缩文件中的文件 
    e 解压压缩文件到当前目录 
    f 刷新压缩文件中的文件 
    i[参数]=<串> 在压缩文件中查找字符串 
    k 锁定压缩文件 
    l[t,b] 列出压缩文件[技术信息,简洁] 
    m[f] 移动到压缩文件[仅对文件] 
    p 打印文件到标准输出设备 
    r 修复压缩文件 
    rc 重建丢失的卷 
    rn 重命名压缩文件 
    rr[N] 添加数据恢复记录 
    rv[N] 创建恢复卷 
    s[名字|-] 转换压缩文件为自解压格式或转换回压缩文件 
    t 测试压缩文件 
    u 更新压缩文件中的文件 
    v[t,b] 详细列出压缩文件[技术信息,简洁] 
    x 用绝对路径解压文件 
    <开关> 
    - 停止扫描 
    ac 压缩或解压后清除存档属性 
    ad 添加压缩文件名到目标路径 
    ag[格式] 使用当前日期生成压缩文件名 
    ai 忽略文件属性 
    ao 添加具有压缩属性的文件 
    ap<格式> 添加路径到压缩文件中 
    as 同步压缩文件内容 
    av 添加用户身份校验(仅注册版本可用) 
    av- 禁用用户身份校验 
    c- 禁用注释显示 
    cfg- 禁用读取配置 
    cl 名称转换为小写 
    cu 名称转换为大写 
    df 压缩后删除文件 
    dh 打开共享文件 
    dr 删除文件到回收站 
    ds 对固实压缩文件禁用名称排序 
    dw 档案处理后清除文件 
    e[+]<属性> 设置文件排除和包括属性 
    ed 不添加空目录 
    en 不添加"压缩文件结束"标志 
    ep 从名称中排除路径 
    ep1 从名称中排除基本目录 
    ep2 展开为完整路径 
    ep3 扩展路径为包含盘符的完全路径 
    f 刷新文件 
    hp[密码] 同时加密文件数据和文件头 
    id[c,d,p,q] 禁用消息 
    ieml[属性] 用 E-mail 发送压缩文件 
    ierr 发送所有消息到标准错误设备 
    ilog[名称] 把错误写到日志文件(只有注册版本可用) 
    inul 禁用所有消息 
    ioff 完成一个操作后关闭 PC 电源 
    isnd 启用声音 
    k 锁定压缩文件 
    kb 保留损坏的已解压文件 
    m<0..5> 设置压缩级别(0-存储...3-默认...5-最大) 
    mc<参数> 设置高级压缩参数 
    md<大小> 以KB为单位的字典大小(64,128,256,512,1024,2048,4096 or A-G) 
    ms[ext;ext] 指定存储的文件类型 
    mt<线程> 设置线程数 
    n<文件> 仅包含指定的文件 
    n@ 从标准输入设备读取文件名到包括 
    n@<列表> 包含在指定的列表文件中列出的文件 
    o[+|-] 设置覆盖模式 
    oc 设置 NTFS 压缩属性 
    or 自动重命名文件 
    os 保存 NTFS 流 
    ow 保存或恢复文件所有者和组 
    p[密码] 设置密码 
    p- 不询问密码 
    r 递归子目录 
    r- 禁用递归 
    r0 仅递归通配符名称的子目录 
    ri<P>[:<S>] 设置优先级(0-默认,1-最小..15-最大)和以毫秒为单位的休眠时间 
    rr[N] 添加数据恢复记录 
    rv[N] 创建恢复卷 
    s[<N>,v[-],e] 创建固实压缩文件 
    s- 禁用固实压缩文件 
    sc<chr>[obj] 指定字符集 
    sfx[名称] 创建自解压压缩文件 
    st[名称] 从标准输入设备读取数据(stdin) 
    sl<大小> 处理小于指定大小的文件 
    sm<大小> 处理超过指定大小的文件 
    t 压缩后测试文件 
    ta<日期> 添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS 
    tb<日期> 添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS 
    tk 保留原始压缩文件时间 
    tl 设置压缩文件时间为最新文件时间 
    tn<时间> 添加 <时间> 以后的文件 
    to<时间> 添加 <时间> 以前的文件 
    ts<m,c,a>[N] 保存或恢复文件时间(修改,创建,访问) 
    u 更新文件 
    v 自动检测创建卷的大小或者列出所有的卷 
    v<大小>[k,b] 创建卷大小=<大小>*1000 [*1024, *1] 
    vd 创建容量前清除磁盘内容 
    ver[n] 文件版本控制 
    vn 使用旧风格的卷命名方案 
    vp 每卷之前暂停 
    w<路径> 指定工作目录 
    x<文件> 排除指定的文件 
    x@ 从标准输入设备读取要排除的文件名 
    x@<列表> 排除在指定的列表文件中列出的文件 
    y 假设对全部询问都回答是 
    z[文件] 从文件读取压缩文件注释 
    D:\WinRAR> 
    ================ 
    举个例子: 
    1. 建立一个批处理文件,里头起作用的只有1行:) 
    ======================================= 
    BackFav.bat(名字可以随便起)文件内容: 
    REM 这个批处理文件是用来自动备份我的收藏夹 
    REM WinRAR <命令> -<开关1> -<开关N> <压缩文件> <文件...> <@列表文件...> <解压路径"> 
    "D:"Program Files"WinRAR"WinRAR.exe" a -as -r -sfx -zsfxpara.txt -EP1 "d:"my documents"Favorites.exe" "%USERPROFILE%"Favorites" 
    ========================================= 
    参数说明: 
    a: 添加指定的文件(源目录,这里是"%USERPROFILE%"Favorites")和文件夹到压缩文件(目标文件,这里是"d:"my documents"Favorites.exe")中。 
    -as: 这是一个开关,指添加方式是“同步压缩文件内容” 
    -r: 表示“包含子文件夹” 
    -sfx: 表示建立的是一个自解压文件 
    -zsfxpara.txt: 从文件sfxpara.txt读取压缩文件注释,这注释有什么用后面解释 
    -ep1: 表示不把路径%USERPROFILE%保存在压缩文件中 
    2. 注释文件的作用 
    建立压缩文件的时候不光要考虑压缩那些文件,还要考虑怎么解压缩。通过注释文件可以向压缩包传递许多有用的信息。 
    sfxpara.txt内容: 
    PATH=%USERPROFILE%" 
    Silent=1 


    --------------------------------- 
    从命令行也可以运行-WinRAR-命令,常规的命令行语法描述如下: 
    WinRAR----- 
    命令-要-WinRAR-运行的字符组合代表功能 
    开关-切换操作指定类型,压缩强度,压缩文件类型,等等的定义。 
    压缩文件-要处理的压缩文件名。 
    文件-要处理的文件名。 
    列表文件-列表文件是包含要处理文件名称的纯文本。文件名应该在第一卷启动。可以在列表文件中使用//字符后添加注释 
    。例如,你可以包含两列字符串创建-backup.lst:c:\work\doc\*.txt-//备份文本文档-c:\work\image\*.bmp-//备份图片 
    c:\work\misc并接着运行:-winrar-a-backup-@backup.lst你可以在命令行中同时指定普通的文件名和列表文件名。 
    解压路径-只与命令-e-和-x-,搭配使用。指出解压文件添加的位置。如果文件夹不存在时,会自动创建。 
    注意事项 
    a)-如果未指定-文件-或是-列表文件-时,WinRAR-将会以缺省的-*.*-运行全部的文件; 
    b)-如果未指定压缩文件扩展名时,WinRAR-将会使用在-压缩配置-中选定的默认压缩文件格式。但你可以指定-.RAR-或-.ZIP-扩展 
    名来替换它们; 
    c)-在命令行所输入的开关会替换相同的配置设置值; 
    d)-在命令-c、e、s、t、rr、k-和-x-可在压缩文件名中使用通配符。如此可以用单个的命令来进行超过一个以上的压缩文件,除此 
    之外,如果你指定--r-开关于这些命令时,它们将会搜索在子文件夹中的压缩文件; 
    e)-某些命令和开关只应用在-RAR-压缩文件,有些则在-RAR-和-ZIP-都可使用,而某些则可应用在全部的压缩文件格式。这一些都 
    得看压缩文件格式所提供的特性而定; 
    f)-命令和开关的大小写是相同意思的,你可以用大写或者小写来下命令均可。 
    --------------------------------------------------------------------------- 
    a-添加文件到压缩文件 
    添加指定的文件和文件夹到压缩文件中。此命令行等同于-添加。 
    注意:-因为分卷压缩文件修改是禁用的,此命令无法应用来更新分卷压缩文件,只用于创建时。 
    例子: 
    a)-从当前文件夹添加全部-*.hlp-文件到压缩文件-help.rar-中 
    WinRAR-a-help-*.hlp 
    b)-从当前文件夹和子文件夹压缩全部文件成为-362000-字节大小、固实的、分卷自解压文件-save.part1.exe,save.part2.rar,save.part3.rar-等,并在每一个分卷中添加恢复记录 
    WinRAR-a--r--v362--s--sfx--rr-save 
    因为未指定文件名,全部文件-(*.*)-将会被添加。 
    c)-如果指定了文件夹名,并结合引用参数-开关--r,这时整个文件夹和子文件夹的全部内容都会被添加到压缩文件中。下面的命令 
    将会把文件夹-Bitmaps-中全部的文件添加到-RAR-压缩文件-Pictures-中 
    WinRAR-a--r-Pictures.rar-Bitmaps 
    当然这也可以使用常规格式用-Bitmaps-来代替-Bitmaps\*.*。 
    c-添加压缩文件注释 
    此命令允许在压缩文件中添加-注释-。RAR-压缩文件的最大注释长度是-62000-字节,而-ZIP-压缩文件则为-32768-字节。添加压缩文件注释也可以通过使用-压缩文件管理-命令-添加压缩文件注释。 
    因为分卷压缩文件修改是禁用的,所以注释无法应用在分卷压缩。当创建分卷压缩时,你可以使用开关--z-来添加注释到分卷压缩。 
    例子: 
    a)-添加注释到压缩文件-distrib.rar 
    WinRAR-c-distrib.rar 
    b)-从文件添加注释可以使用--z-开关。 
    WinRAR-c--zinfo.txt-dummy 
    cf-添加文件注释 
    cw-写入压缩文件注释到文件 
    d-删除压缩文件中的文件 
    从压缩文件删除指定的文件和文件夹。此命令行命令相当于-压缩文件管理-命令-删除。 
    注意: 
    1)-如果从压缩文件删除全部的文件时,空白的压缩文件将会被删除。 
    2)-因为分卷压缩文件修改是禁用的,此命令无法应用于分卷压缩。 
    例子: 
    从压缩文件-dummy-删除全部的-*.dmy-文件 
    WinRAR-d-dummy-*.dmy 
    e-解压压缩文件到当前目录 
    忽略路径解压压缩的文件到当前或指定的文件夹。此命令行对应的是-压缩文件管理-命令-解压到指定文件夹-并在-解压路径和选项对话框-“不解压路径”的选项是启用时。 
    例子: 
    在当前文件夹,从全部的-RAR-压缩文件解压所有的-*.doc-文件到当前文件夹 
    WinRAR-e-*.rar-*.doc 
    f-刷新压缩文件中的文件 
    只有在压缩文件中的文件比添加的还旧时才更新。此命令不会把新文件添加到压缩文件中。命令行等同于-添加到压缩文件-并且 
    在-压缩文件名和参数对话框-选择了“只刷新已存在的文件”的更新模式。 
    因为分卷压缩文件修改是禁用的,所以此命令无法应用在分卷压缩。 
    另请参阅:-命令-A---添加文件到压缩文件 
    i[参数]=-在压缩文件中查找字符串 
    在压缩文件中查找字符串。支持下列参数: 
    i---不区分大小写查找(默认); 
    c---区分大小写查找; 
    h---十六进制查找; 
    t---使用-ANSI,-Unicode-和-OEM-字符表; 
    如果没有指定参数,它可以使用简单的命令行语法-i-代替-i= 
    它还允许和其他参数一起指定‘t’变量,例如,ict=字符串,使用上述所有字符表执行区分大小写的查找。 
    由于技术限制,现在-WinRAR-不支持在-ACE-和-7Z-压缩文件格式中查找。 
    例子: 
    1)-winrar-"ic=first-level"--r-c:\*.rar-*.txt 
    在磁盘C:中的-*.RAR-压缩文件中的-*.txt-文件中执行区分大小写搜索-"first-level"-字符串。 
    2)-rar-ih=-f0e0aeaeab2d83e3a9--r-e:\texts 
    在-e:\text-目录下的-RAR-压缩文件中查找十六进制字符串-f0-e0-ae-ae-ab-2d-83-e3-a9-。 
    k-锁定压缩文件 
    此命令可防止-WinRAR-在未来对压缩文件的任何修改。此命令行命令相当于-压缩文件管理-命令-锁定压缩文件。 
    例子: 
    WinRAR-k-release 
    压缩文件管理:-WinRAR-图形界面可以是二种基本状态中的一种:-文件管理模式或压缩文件管理模式。 
    在文件管理模式,将会显示当前工作文件夹的文件和文件夹列表。你可以使用鼠标或键盘等常用的-Windows-方式来-选择-文件和文件夹,以及运行不同文件操作,例如压缩或者删除。这些模式也可以用压缩文件组来运行测试和解压操作。 
    在压缩文件管理模式,将会显示当前打开的压缩文件的压缩文件和文件夹列表,你也可以选择文件和文件夹,并运行如解压、测试或注释等压缩文件指定操作。 
    在任一个模式里,你均可以更改当前的文件夹-(实际的或压缩过的)。按下-Backspace-或-Ctrl+PgUp-或在文件夹的".."名称上双击,可以转到磁盘或压缩文件文件夹的上一层。如果你正在查看压缩文件的最上层文件夹,相同的动作将会关闭压缩文件,并返回到-WinRAR-文件管理模式。按下-Enter-或-Ctrl+PgDn-或在任何其它的文件夹上双击则进入里面。同样的动作应用在压缩文件名时,则会打开此压缩文件。Ctrl+\-则将磁盘的最上层文件夹设置为当前文件夹。 
    要进入-WinRAR-的文件管理模式,只需很简单地在-WinRAR-图标上双击,或者从命令行不加参数运行-WinRAR。 
    要进入-WinRAR-的压缩文件管理模式,先从文件管理模式启动-WinRAR,然后将光标移到想要的压缩文件上,并在压缩文件名上按下-Enter-或从-文件菜单-使用“打开压缩文件”命令。或者在-Windows-界面-(资源管理器或桌面)-的压缩文件名上以鼠标双击就可用-WinRAR-将它打开。要有这样的特性,WinRAR-必须在安装期间关联到压缩文件-(它是默认的安装选项)。你也可在安装后使用-综合设置对话框-将压缩文件关联到-WinRAR。最后,如果在命令行以压缩文件名作为单个参数运行-WinRAR,也可以直接从命令行进入想要的压缩文件。 
    锁定压缩文件:-此命令使用于当-WinRAR-是用在-文件管理-和-压缩文件管理-模式时。如果你在压缩文件内部,你不需要选择任何要运行该命令的文件,只要使用-命令菜单、工具栏上的“锁定”按钮或键盘快捷键-Alt+L-运行“锁定压缩文件”命令。如果你在文件管理模式浏览未压缩文件,首先选择要搜索来锁定的压缩文件和文件夹。 
    锁定的压缩文件便无法再通过-WinRAR-修改。你可以锁定重要的压缩文件,以防止被意外的修改。这个功能只能被-RAR-压缩文 
    件支持。 
    命令行对应命令:-命令“k” 
    l[t,b]-列出压缩文件[技术信息,简洁] 
    m[f]-移动到压缩文件[仅对文件] 
    类似-命令-a-,但在压缩操作成功完成后,文件和文件夹将会被清除。此命令行等同于-添加到压缩文件-并且在-压缩文件名和参数对话框中启用“压缩之后删除”选项。 
    因为分卷压缩文件修改是禁用的,所以此命令无法应用在更新分卷压缩,只能创建。 
    p-打印文件到标准输出设备 
    r-修复压缩文件 
    压缩文件修复由二个阶段所组成。首先,损坏的压缩文件会扫描-恢复记录-(参阅-rr-命令)。如果压缩文件包含先前添加的恢复记录,而且损坏的数据部分是连续性的,并低于-N*512-字节,N-代表置入压缩文件内恢复扇区的数目,压缩文件成功重建的机会是非常高的。当此阶段完成时,新的压缩文件将会创建,叫做-_recover.rar。 
    如果损坏的压缩文件不包含恢复记录,或是如果压缩文件由于严重的损坏,而不能够完全恢复时,第二阶段开始。在此阶段期间,仅有压缩文件结构的重建,而要恢复失败-CRC-验证的文件是不可能,但是它尽可能的从损坏的压缩文件架构中,可访问的部位来恢复未损坏的文件。通常这对固实的压缩文件是有用的,在损坏的固实压缩文件,通常仅第一个文件可能在第二个阶段期间被恢复的。 
    当此阶段完成时,新的压缩文件将会创建,叫做-_reconst.rar。 
    当恢复程序操作时,当可疑的文件出现的时候,WinRAR-可能会提示用户加以协助。 
    可疑的项目-。将它添加到压缩文件:-是/否/全部 
    回答“是”把此项目添加文件-_recover.rar。 
    此命令行等同于-文件管理-命令-修复压缩文件。 
    例子: 
    winrar-r-buggy.rar 
    rc-重建丢失的卷 
    使用-恢复卷-(.rev-文件)重建丢失的卷。你需要指定任何存在的卷作为压缩文件名,例如: 
    winrar-rc-backup.part03.rar 
    你可以在-这里-读到更多关于恢复卷的信息。 
    rn-重命名压缩文件 
    重命名压缩文件。这个命令只支持-RAR-压缩文件格式。命令语法是: 
    winrar-rn- 
    例如,下列命令: 
    winrar-rn-data.rar-readme.txt-readme.bak-info.txt-info.bak 
    在压缩文件-data.rar-中将把-readme.txt-重命名为-readme.bak-并把-info.txt-重命名为-info.bak。 
    在源文件和目标文件名中可以使用统配符来进行简单像改变文件扩展名的名称转换。例如: 
    winrar-rn-data.rar-*.txt-*.bak 
    将把所有的-*.txt-文件重命名为-*.bak。 
    WinRAR-不检查目标文件名是否已经在压缩文件中存在,所以你需要小心,防止重名。尤其是使用统配符时特别重要。这个命令有潜在的危险,因为一个错误的统配符可以损坏所有的压缩文件名。 
    rr[N]-添加数据恢复记录 
    选择性的,多余的信息-(恢复记录)-可添加到压缩文件中,也会造成压缩文件大小些微增大,但在磁盘失败或是其它数据流失时,可以帮助恢复压缩文件。- 
    恢复记录可包含最多-524288-个恢复扇区。如果受损数据部位是连续性的,这时每一个扇区能够恢复-512-个字节的受损信息, 
    然而在多区域受损时,此值将会减少。 
    扇区的数量也可以直接以“rr”命令-(N-=-1,2-..-524288)-指定。如果用户未指定,则将会以压缩文件大小自动的选择记录区 
    值:-恢复信息的大小大约是压缩文件大小总计的-1%,通常允许恢复压缩文件连续受损数据总计大小最多达-0.6%。 
    你也可以使用百分比字符附加指定-压缩文件大小百分比的恢复记录大小。例如,‘rar-rr3%-压缩文件名’注意如果你从.bat-或-.cmd-文件运行这个命令时,你需要使用-rr3%%-代替-rr3%,因为命令处理把符号‘%’作为批处理文件开始的参数。你 
    可以使用-‘p’代替‘%’,所以‘rr3p’也可运行。 
    恢复记录大小的概算公式为: 
    /-256-+-*-512-字节。 
    此命令行等同于-压缩文件管理-命令-保护压缩文件防止损坏。 
    例子: 
    a)压缩文件-backup-添加默认大小(1%)恢复记录 
    winrar-rr-backup 
    b)-添加数据恢复记录到压缩文件-pictures-并设置它的大小为压缩文件总大小的-5% 
    winrar-rr5p-pictures 
    rv[N]-创建恢复卷 
    创建恢复卷(.rev文件),以后它可以在卷组中重建丢失的文件。 
    这个命令只对多卷压缩文件敏感,你需要在组中指定第一卷的名字作为压缩文件名。例如: 
    winrar-rv3-data.part01.rar 
    选项-参数指定创建恢复卷的数目并必须少于RAR卷的总数。你也可以附加一个百分号到这个参数上,这样创建的.rev文件的 
    数目将等于从RAR卷总数获得的这个百分比。-例如: 
    winrar-rv15%-data.part01.rar 
    你可以在-这里-读到更多关于恢复卷的信息。 
    s[名字|-]-转换压缩文件为自解压格式或转换回压缩文件 
    这个命令会创建一个自解压文件-(SFX)-当运行时会解压包含在里面的文件。 
    你也可以制作自解压当成多片的分卷压缩第一个序列,但必须注意一点,因为自解压模块的数量而会使文件大小较大些。自解压分卷的创建可使用命令-a-并加上开关:--v--sfx,然后你不需要确认分卷的大小---第一个分卷会自动的以正确的大小来创建。 
    这个命令行等同于-压缩文件管理-命令-把压缩文件转换成自解压格式。 
    例子: 
    WinRAR-s-diamant 
    默认-WinRAR-使用在-RAR-压缩文件的自解压模块文件为-default.sfx,它必须与winrar.exe-存在于相同的文件夹中以及,对于-ZIP-压缩文件则使用-zip.sfx-模块。也可以在“s”命令中,指定交替的自解压模块名。 
    例如,要添加-DOS-自解压模块-dos.sfx-则运行: 
    WinRAR-sdos.sfx-myinst 
    ------------------- 
    s--这个命令会从已存在的-自解压文件-(SFX)-删除自解压模块。 
    WinRAR-会创建新的不含自解压模块的压缩文件,原有的自解压文件不会删除。 
    例子: 
    WinRAR-s--rarsetup.exe- 
    t-测试压缩文件 
    为了验证指定的文件,这个命令会运行虚拟文件解压,但不会写入输出数据流。这个命令行等同于-压缩文件管理-命令-测试文件。 
    例子: 
    测试全部在磁盘上的-*.rar-压缩文件 
    WinRAR-t--r-\*.rar 
    u-更新压缩文件中的文件 
    这个命令,就好象-命令-f-一样。仅在如果压缩文件中的文件比被添加的还旧时才更新,但不像“f”的地方是,它只会添加新的文件。- 
    这个命令行等同于-添加到压缩文件-并在-压缩文件名和参数对话框-中选择“添加和更新文件”的更新模式。 
    因为分卷压缩文件修改是禁用的,所以这个命令无法应用在分卷压缩。 
    另请参阅:-命令-A---添加文件到压缩文件中 
    v[t,b]-详细列出压缩文件[技术信息,简洁] 
    x-用绝对路径解压文件 
    以完整路径解压文件和文件夹。保存在压缩文件中的文件夹架构,将会完整的还原恢复。此命令行等同于-压缩文件管理-命令-解压 
    类似的方法有-命令-e,此命令可以解压文件到当前文件夹或者指定的文件夹。 
    例如,命令: 
    WinRAR-x-Fonts-*.ttf 
    会从压缩文件解压-*.ttf-字体文件到当前文件夹,但下面命令: 
    WinRAR-x-Fonts-*.ttf-NewFonts\ 
    会从压缩文件解压-*.ttf-字体文件到文件夹-NewFonts 
    在上面的例子,你必须使用附加的倒斜线来表示目标文件夹。 

    --停止扫描 
    ac-压缩或解压后清除存档属性 
    此开关是设计用于备份目标的。当压缩时使用此开关,在压缩之后文件的“存档”属性将会被清除。或者如果是在解压的时候,WinRAR-会清除解压后文件的“存档”属性。 
    ad-添加压缩文件名到目标路径 
    这个选项可以在解压一组压缩文件时使用。默认条件下-RAR-把从压缩文件中解压的文件放在同一目录下,但是这个开关让从每个压缩文件中解压的文件都创建一个单独的目录。 
    例子: 
    rar-x--ad-*.rar-data\ 
    WinRAR-将为在‘data’下每一个未压缩的压缩文件创建子目录。 
    af-指定压缩文件格式 
    这个开关在-WinRAR-命令行中允许定义新压缩文件类型-参数可以是‘rar’或‘zip’。 
    例如,‘winrar-a--afzip-arc’将创建-arc.zip-压缩文件。 
    这个开关只被-WinRAR-支持。控制台-RAR-不能创建-ZIP-压缩文件。- 
    ag[格式]-使用当前日期生成压缩文件名 
    当创建压缩文件时,以格式“YYYYMMDDHHMMSS”附加当前日期字符串,这对于每日更新是有用的。 
    附加字符串是由“格式”参数所定义,或者如果不存在时,则使用“YYYYMMDDHHMMSS”。格式字符串可以包含下列的字符: 
    Y-年 
    M-月 
    MMM-文本式的月份名-(Jan,Feb,等) 
    W-文本星期名-(星期以星期一开始) 
    A-数字星期名-(星期一为-1,星期日为-7) 
    D-日(月) 
    E-日(年) 
    H-时 
    M-分-(如果接续在时候面,则视为分看待) 
    S-秒 
    N-压缩文件数字。WinRAR-搜索要生成的名字的文件是否存在,如果发现它已经存在,将递增一个压缩文件数字,直到生成一个唯一的名字。 
    上面列出的每个字符串仅表示添加到压缩文件名中的一个字符。例如,使用-WW-表示-2-数字的星期或-YYYY-定义-4-数字的年。 
    如果在格式化字符串的第一个字符是‘+’,日期字符串和基本压缩文件名位置交换,所以日期将在压缩文件名之前。 
    格式字符串可以包含在-'{'-和-'}'-包含的可选字符。此文本插入到压缩文件名中。 
    所有其它字符都原样添加到压缩文件名。 
    如果你需要更新已经存在的压缩文件,小心使用--ag-开关。依赖于以前使用的--ag-传送的格式字符串和时间,生成的和现有的压缩文件名可能不匹配。在这种情况下-WinRAR-会创建一个新的压缩文件,而不是更新现有文件。 
    例子: 
    1)-使用默认的-YYYYMMDDHHMMSS-格式 
    winrar-a-朼g-backup 
    2)-使用-DD-MMM-YY-格式 
    winrar-a--agDD-MMM-YY-backup 
    3)-使用-YYYYMMDDHHMM-格式 
    winrar-a--ag+YYYYMMDDHHMM-backup 
    4)-使用-YYYY-WW-A-格式,包含区段描述 
    rar-a--agYYYY{year}-WW{week}-A{wday}-backup 
    5)-使用-YYYYMMDD-和压缩文件数字。它允许即使用-YYYYMMDD-格式掩码在同一天使用超过一次时,也产生唯一的文件名 
    winrar-a--agYYYYMMDD-NN-backup 
    ao-添加具有压缩属性的文件 
    此开关是设计用于备份目的的。当压缩时使用此开关,只会添加“存档”属性的文件到压缩文件中。 
    例子: 
    添加驱动器-C:-具有“存档”属性的全部文件到“f:backup”并清除文件的“存档”属性 
    WinRAR-a--r--ac--ao-f:backup-c:\*.* 
    ap-添加路径到压缩文件中 
    当添加文件到压缩文件以及当解压时从文件名删除时,将会使用与此开关结合的路径。 
    举例来说,如果你希望添加文件-readme.txt-到压缩文件-release-的文件夹-DOCS\ENG-中,你可以运行: 
    WinRAR-a--apDOCS\ENG-release-readme.txt 
    或解压-ENG-到当前文件夹: 
    WinRAR-x--apDOCS-release-DOCS\ENG\*.* 
    仅可用于-RAR-和-ZIP-格式。 
    as-同步压缩文件内容 
    如果此开关使用于压缩时,在当前添加的文件列表中不存在的被压缩文件,将会从压缩文件中删除。它可以很方便的与--u-开关结合,用来同步压缩文件和压缩的文件夹的内容。 
    举例来说,在下面命令之后: 
    winrar-a--u--as-backup-sources\*.cpp 
    压缩文件-backup.rar-将只会包含源文件夹的-*.cpp-文件,其它的全部文件将会从压缩文件中删除。它看起来就好象创建新压缩文件,但有一个重要的不同:-如果从上次备份后没有修改过的文件,这项操作会比创建新压缩文件的操作快上许多。 
    只可用于-RAR-格式。 
    av-添加用户身份校验(仅注册版本可用) 
    如果使用此开关,WinRAR-将会在每个新建和更新的压缩文件,添加关于创建者,上次更新时间和压缩文件名的信息。如果压缩文件包含了用户身份校验信息,在被修改后此开关未指定时,用户身份校验信息将会被删除。 
    在-压缩文件管理模式,你始终可以使用-显示信息-命令来读取认证信息。认证信息只支持于-RAR-压缩文件格式。 
    当创建分卷压缩文件时使用“-av”开关,认证信息将会被放到每一个分卷中。 
    为了启动认证信息的功能,此程序-必须注册。请阅读-许可和注册信息-章节来获得更多关于注册的信息。 
    如果此开关未指定,认证信息仅在-压缩配置-的“添加用户身份校验信息”选项打开时才会添加。 
    例子: 
    从当前文件夹添加全部的文件到压缩文件“release”并添加用户身份校验信息到压缩文件 
    WinRAR-a--av-release 
    av--禁用用户身份校验 
    即使-压缩配置-的“添加用户身份校验信息”选项是打开的,此开关仍会关闭添加认证信息。 
    c--禁用注释显示 
    cfg--禁用读取配置 
    此开关让-WinRAR-忽略在默认-压缩配置-中的设置和-RAR-环境变量。 
    RAR-环境变量:-使用-SET-命令,默认的开关可以添加到-RAR-的-Windows-环境变量中。大多数在变量中指定的开关只能适用当-WinRAR-运行于-命令行模式-时,而开关--cl、-cu、-tk、-tl、-p-则可同时使用于界面模式和命令行模式。 
    示例 
    命令 
    SET-RAR=-s--m5--md1024 
    当运行于命令行模式时,将会强制-WinRAR-创建-固实压缩文件-并使用最优压缩方式和-1024-Kb-的字典。 
    cl-名称转换为小写 
    当使用此开关时,从压缩文件解压、添加到压缩文件、修改或更新压缩文件中的文件的全部文件名都将被转换成为小写。这有时可用于当从一个有区分大小写的操作系统,移动压缩文件到另一个有区分大小写的操作系统。举例来说,从-UNIX-下解压,但压缩 
    文件创建在-DOS-下。 
    例子: 
    从-port.rar-解压全部的文件并将名称转换成小写 
    WinRAR-x--cl-port 
    cu-名称转换为大写 
    当使用此开关时,从压缩文件解压、添加到压缩文件、修改或更新压缩文件中的文件的全部文件名都将被转换成为大写。 
    例子: 
    从-port.rar-解压全部的文件并将名称转换成大写 
    WinRAR-x--cu-port 
    df-压缩后删除文件 
    移动文件到压缩文件。此开关结合命令-a-运行时的动作等同于命令-m。 
    dh-打开共享文件 
    允许处理由其它应用程序打开来写入的文件。 
    如果应用程序允许度去访问文件时,这个开关有用,但是如果文件的所有访问类型都被禁止,文件打开操作仍然会失败。 
    此开关是有危险性的,因为它允许添加文件到压缩文件,而文件可能正由其它应用程序进行修改中。使用时请小心。 
    如果未指定此开关,则依据在-压缩配置-的“打开共享的文件”选项设置而定。 
    例子: 
    WinRAR-a--dh-dbf-*.dbf 
    ds-对固实压缩文件禁用名称排序 
    此开关只对-固实-RAR-压缩文件有意义。固实压缩文件的压缩率是依据文件的顺序而定的,默认的-WinRAR-添加到固实压缩文件的文件是按扩展名排序的。你可以使用此开关--ds-关闭此项排序,并试着设置更为最优化的文件顺序。通常类似的数据是被添加在 
    一起的。 
    例子: 
    WinRAR-a--s--ds-tools-*.com-*.exe-*.doc-*.txt-*.* 
    文件将会以:-*.com、*.exe、*.doc、*.txt、全部其它文件类型的顺序来添加。 
    注意: 
    文件-rarfiles.lst-也可以用来定义固实压缩文件中的文件顺序 
    e[+]-设置文件排除和包括属性 
    指定文件排除属性掩码。-是一个十进制、八进制、(以‘0’开头)-或十六进制-(以‘0x’开头)-格式的数字。如果和文件属性-AND-逻辑运算后结果非零,文件不被添加到压缩文件中。 
    默认,在没有‘+’标记,此开关定义排除掩码。如果对和文件属性按位进行-AND-逻辑运算的结果不为-0,则文件将不会被加入到压缩文件中。 
    如果‘+’符号存在,它指定包含掩码。只有具有在掩码中指定的属性中的至少一种的文件会被添加到压缩文件中。 
    在-Windows-版本中也可以使用符号-D,-S,-H,-A-和-R-代替数字掩码来指出带有系统、隐藏、存档和只读属性的文件夹和文件。 
    给出的属性的顺序没有特别的意义。 
    允许在命令行中把--e-和--e+-都指定。 
    例子: 
    1)-仅有文件夹名字而不包含它们的内容 
    WinRAR-a--r--e+d-folders 
    2)-不压缩系统和隐藏属性的文件: 
    WinRAR-a--esh-files 
    ed-不添加空目录 
    这个开关指出空目录不被存储到被创建的压缩文件中。当解压这样一个压缩文件时,-RAR-会基于他们内部的文件路径创建非空的目录。关于空目录的信息丢失。非空目录除了名字外(访问权限,-流,-等。)其他所有属性全部丢失,-所以只有在你不需要保留这样的信息时使用此开关。 
    en-不添加"压缩文件结束"标志 
    默认情况下,RAR-在新建或更新压缩文件时,在结束时添加“压缩文件结束”块。它允许跳过象数字安全签名等扩展数据,但是在一些特定条件下禁用这些功能可能有用。例如,如果在一个压缩文件在两个系统之间通过不可靠的连接传递,并且同时发送者在它里面添加新文件时,它可能对确认已经接受的文件部分不会在传送部分之间的另一个结束被修改很重要。 
    这个开关不能用在分卷上,因为压缩文件结束块包含正确处理卷的重要信息。 
    ep-从名称中排除路径 
    包含此开关时,文件在加入压缩文件时不会包含路径信息。这可能会有在压缩文件中,存在数个相同名称的结果。 
    例子: 
    从当前磁盘压缩全部的-*.bas-文件而不含路径。 
    WinRAR-a--r--ep-bsources-\*.bas 
    ep1-从名称中排除基本目录 
    不存储在命令行所输入的路径。 
    例子: 
    将所有-tmp-文件夹内的全部文件和文件夹加入到压缩文件-test,但是在压缩的路径名不包含「tmp\」 
    WinRAR-a--r--ep1-test-tmp\* 
    此等同于命令: 
    cd-tmp 
    WinRAR-a--r-..\test 
    cd-.. 
    ep2-展开为完整路径 
    当压缩时存储完整的文件路径-(除了驱动器号与前缀的反斜线)。 
    ep3-扩展路径为包含盘符的完全路径 
    压缩时如果使用此开关则保存和恢复包括盘符的完全的文件路径。磁盘分隔符(冒号)被下划线字符替换。 
    如果你解压时使用--ep3,它把下划线改回为冒号并且把文件解压到它们原始的目录和磁盘中。如果用户也指定了目标路径,它会被忽略。 
    此开关对于把数个磁盘备份到同一个压缩文件有帮助。例如,你可以运行: 
    WinRAR-a--ep3--r-backup.rar-c:\-d:\-e:\ 
    来创建备份并且: 
    WinRAR-x--ep3-backup.rar 
    来恢复它。 
    小心使用--ep3-开关,只有你确认压缩文件不包含任何恶意文件。你可以在--ep3-开关-的描述中看到更多关于“存储包含盘符的完全路径”模式的可能的好处和危险,它是与此-WinRAR-选项等价的命令行。换句话说,如果是你自己创建的压缩文件或你完全相信它的作者才使用它。此开关允许覆盖在你的计算机上任何地方的任何文件,包括重要的系统文件和通常仅用于备份和恢复的目的。 
    f-刷新文件 
    可使用于压缩文件解压或是创建时。命令字符串“a--f”等同于命令-f。你也可以使用开关“-f”于命令-m。 
    如果开关“-f”使用于命令-x-或-e,此时仅旧文件会被从压缩文件解压的新版本给替换。压缩后的文件,没有符合的未压缩文件,则不会解压。 
    界面模式对等的开关是位于-压缩文件名和参数-对话框的“只刷新已存在的文件”选项,以及-解压路径和选项对话框-的“只刷新已存在的文件”选项。 
    hp[密码]-同时加密文件数据和文件头 
    这个开关和--p[p]-类似,但是开关--p-只加密文件数据,而使文件名等其它信息可见。这个开关加密所有包括文件数据、文件名、大小、属性、注释和其它块等所有可感知压缩文件区域,所以它提供了更高的安全等级。 
    在压缩文件中使用-hp-加密,没有密码甚至不可能查看文件列表。 
    例子: 
    将添加文件-report.txt-到加密的压缩文件-secret.rar-中,使用密码‘fGzq5yKw’ 
    rar-a--hpfGzq5yKw-secret-report.txt 
    ibck-在后台运行winrar- 
    当开始压缩或是解压操作时,将-WinRAR-最小化放到任务栏指示区。 
    界面模式对等的开关是位于-压缩文件名和参数-对话框的“后台压缩”选项 
    id[c,d,p,q]-禁用消息 
    ieml[属性]-用-E-mail-发送压缩文件 
    附加一个使用添加命令创建或被更新的压缩文件到-E-mail-信息中。你需要有-MAPI-兼容的-E-mail-客户端来使用这个开关(大部分现代的-E-mail-程序支持-MAPI-接口)。 
    你可以在开关中直接输入详细-E-mail-地址或留为空白。在以后可以由你的-E-mail-程序询问。可以使用用分号或逗号分开的数个地址。 
    如果你添加一个‘.’字母到--ieml,成功附加到-E-mail-中后压缩文件会被删除。 
    如果创建多卷压缩文件使用这个开关,每一卷都附加单独的-E-mail-附件中。 
    iicon-指定自解压图标 
    指定要创建或更新的自解压压缩文件的图标。参数是-.ico-图标文件的名字。这个文件必须包括至少一个-32x32-图标,-16-或-256-色(或全有)。推荐不必包含16x16-图标。大小超过-32x32-和颜色数超过-256-色的图标仅被基于-NT-的-Windows-(NT,-2000,-XP,-2003-等)支持,Windows-95,-98-和-Me-不支持。如果你要使用大的图标大小和压缩深度,则你不能使用任何第三方可执行文件压缩程序压缩自解压模块。 
    这个开关等价于-自解压选项:图标和文本-对话框的“从文件加载图标”的命令行命令。 
    例子: 
    1)-把-c:\myfiles-文件夹的内容添加到-setup.exe-自解压文件中,使用图标c:\myicons\ver1.ico-作为自解压文件的图标 
    winrar-a--sfx--iiconc:\myicons\ver1.ico-setup.exe-c:\myfiles 
    2)-把已经存在的自解压文件-setup.exe-替换为-c:\myicons\ver2.ico 
    winrar-s--iicon-c:\myicons\ver2.ico-setup.exe 
    iimg-指定自解压图片 
    指定一个位图文件在创建或更新的自解压压缩文件来显示为图片。参数是包含完全路径的-.bmp-文件的名称。此开关仅支持基于-NT-的-Windows-(NT、2000、XP、2003-等),但不支持-Windows-95、98-和-Me。你如果你要使用-iimg,则你不能使用任何第三方可执行文件压缩程序压缩自解压模块。 
    此开关是和在-自解压选项:-文本和图标-对话框的“从文件加载自解压图片”选项等价的命令行。 
    默认大小的自解压图片是-93x302-像素。推荐使用相同或更小大小的位图。 
    例子: 
    添加-c:\myfiles-文件夹的内容到-setup.exe-自解压压缩文件,使用-c:\pictures\logo.bmp-作为自解压图片 
    winrar-a--sfx--iimgc:\pictures\logo.bmp-setup.exe-c:\myfiles 
    ierr-发送所有消息到标准错误设备 
    ilog[名称]-把错误写到日志文件(只有注册版本可用) 
    把错误信息写到-RAR-目录中的-rar.log-文件中。你可以在-选项菜单-中使用“查看日志”查看这个文件的内容。命令也可以在开关中指定其它的日志文件名代替默认的-rar.log,例如,--ilogc:\log\backup.log。-如果指定的文件名不包含路径,日志文件将在RAR目录中创建。 
    如果-常规设置-对话框中选项“记录错误到日志中”启用,无论有没有--ilog-开关,错误信息都会写到-rar.log-中开关。 
    inul-禁用所有消息 
    禁用-WinRAR-错误信息。 
    ioff-完成一个操作后关闭-PC-电源 
    完成一个操作关闭-PC-电源。硬件必须支持关闭电源功能。 
    isnd-启用声音 
    k-锁定压缩文件 
    此开关防止由-WinRAR-所做的任何压缩文件修改。 
    kb-保留损坏的已解压文件 
    此开关关闭-WinRAR-在解压后删除损坏的文件动作。 
    m-设置压缩级别(0-存储...3-默认...5-最大) 
    选择-从-0-到-5,你可以-选择一个适当的压缩模式 
    -m0-存储-添加文件到压缩文件但是不压缩 
    -m1-最快-最快速的方法-(最低的压缩比) 
    -m2-快速-快速压缩方法 
    -m3-标准-标准-(默认)-压缩方法 
    -m4-较好-较好的压缩方法-(较高的压缩比) 
    -m5-最优-最优的压缩方法-(最高压缩比但是速度也最慢) 
    在-WinRAR-的默认值是使用“-m3”方式-(常规压缩)。 
    默认情况下,RAR-在--m1-和--m2-模式中只使用常规压缩算法,高级算法象声音和真彩处理只有在--m3..-m5-模式下才启用,提升的文本压缩只有在--m4..-m5-中才被激活。默认值可以使用--mc-开关替代。 
    压缩方式也可以通过-压缩文件名和参数对话框-列出的“压缩方式”中设置。 
    mc-设置高级压缩参数 
    这个开关主要是试图进行测试和试验,在真实环境中通常最好允许-RAR-去自动选择最佳参数。请注意,不正确地使用这些开关可能导致非常严重的执行和压缩损失,所以只有在你清楚理解你所要做的时使用它。 
    它的语法: 
    -mc[参数1][:参数2][模块][+-or--] 
    的位置是指示压缩算法的一个字符,它必须被设置。它可以有下列的值: 
    A-音频压缩; 
    C-真彩色(RGB)数据压缩; 
    D-delta-压缩; 
    E-32-位-x86-Intel-可执行文件压缩; 
    I-64-位-Intel-Itanium-可执行文件压缩; 
    T-文本压缩。 
    在开关结尾的'+'标记应用选择的算法模块到所处理的数据,'-'完全禁用模块。如果没有指定标记,RAR将基于数据和当前的压缩模式自动选择模块。开关--mc--禁止所有的可选模块并只允许常规压缩算法。 
    和-是下面描述的参数的依靠模块。 
    音频压缩,增值压缩: 
    使通道的字节数-(可以是1---31)。 
    RAR-拆分多位声道成单位声道,例如,两个16位音频声道可以被-RAR-看作每个宽一字节的四个声道。 
    被忽略。 
    32位-x86-Intel-可执行文件压缩,64位-Intel-Itanium-可执行文件压缩,-真彩(RGB)数据压缩 
    和-被忽略。 
    文本压缩: 
    是-PPM-算法的规则(可以是-2---63)。 
    对于-PPM-可用的以兆字节位单位的内存-(1-128)。 
    PPM-压缩和解压使用的内存大小相等,所以创建一个压缩文件时如果分配太多的内存,其它人在安装了比较少内存的机器上解压 
    它时可能出现问题。解压缩也可以使用虚拟内存,但是可能变得非常慢。 
    例子: 
    1)-开关--mc1a+-强制使用对所有数据使用8位单声道诞生到声音压缩。 
    2)-开关--mc10:40t+-强制使用对所有数据使用文本压缩优化算法,设置压缩次序到-10-并分配40-MB内存。 
    3)-开关--mc12t-设置压缩次序到-12,设置文本压缩顺序为12,当使用文本压缩时,让-RAR-决定何时使用它。 
    4)-开关--mct---mcd--禁止文本和增值压缩。 
    md-以KB为单位的字典大小(64,128,256,512,1024,2048,4096-or 
    此开关允许以-Kb-来-选择字典大小。-必须是-64、128、256、512、1024、2048、4096-或对应字母“a”、“b”、“c”、“d”、“e”-、“f”、“g”。WinRAR-中默认的可变字典大小是-4096-KB。 
    可变字典,是供压缩运算法使用的特殊内存区域。如果正在压缩的-(或在固实压缩文件,总计文件大小的例子)-文件大小比字典还大,此时增加字典大小通常会增加压缩比,降低压缩的速度,和增加内存需求。-和压缩不一样,解压速度与字典大小无关。 
    如果字典的大小大于源数据的大小,WinRAR-能减少它。这对减少内存的需求同时不降低压缩率有帮助。 
    ZIP-压缩文件始终会使用-32Kb-的字典来创建。因为-ZIP-格式的限制,所以比较大的数值无法使用。 
    字典大小也可以通过-高级压缩参数-对话框的“字典大小”列表来做选择。 
    例子: 
    使用-512Kb-的字典和最好的压缩方式创建-固实压缩文件 
    WinRAR-a--md512--m5--s-stuff 

    ms[ext;ext]-指定存储的文件类型 
    指定不压缩而直接存储的文件类型。当正确使用时,它将有助于增加压缩速度,而不会显著的减小压缩率。
    可选参数-参数定义使用分号隔开得文件扩展名列表。例如,-msrar;zip;jpg-将强制-RAR-不压缩直接存储所有的-RAR-和-ZIP-压缩文件和-JPG-图象。它也允许在列表中指定通配符,所以--ms*.rar;*.zip;*.jpg-也可以工作。 
    如果-没有被指定,--ms-开关将使用默认的包含下列文件类型的扩展设置: 
    ace,-arj,-bz2,-cab,-gz,-jpeg,-jpg,-lha,-lzh,-mp3,-rar,-zip,-taz,-tgz,-z 
    n-仅包含指定的文件 
    仅包含指定的文件。通配符在文件掩码的名称和文件部分都可用。你可以数次指定开关‘-n’。此关不能替换通常的文件掩码,仍然需要在命令行中输入。它是一个附加的过滤器限制处理的文件那些仅匹配在-杗-开关中指定掩码的文件。某些时候它可以帮助减少命令行的长度。 
    例如,如果你需要压缩在-Project-和-Info-文件夹内的所有的-*.txt-和-*.lst-文件,你可以输入: 
    WinRAR-a--r-text-Project\*.txt-Project\*.lst-Info\*.txt-Info\*.lst 
    或使用开关--n: 
    WinRAR-a--r--n*.txt--n*.lst-text-Project-Info 
    n@-从标准输入设备读取文件名到包括 
    和--n-开关类似,但是从列表文件读取掩码 
    例子: 
    WinRAR-a--r-[url=mailto:-n@inclist.txt]-n@inclist.txt[/url]-text-Project-Info 
    n@-在指定的文件列表包括文件 
    o+-覆盖已存在文件 
    在不提示用户状况下,直接覆盖现存的文件。 
    o--不覆盖已存在文件 
    在不提示用户状况下,直接跳过现存的文件。 
    oc-设置-NTFS-压缩属性 
    此开关允许解压文件时恢复-NTFS-“压缩”属性。WinRAR-在创建一个压缩文件时保存“压缩”文件属性,但是如果不指定--oc-开关就不会恢复它们。外壳模式等价此开关的是在解压对话框的-“高级”-部分的“设置压缩属性”选项。 
    此开关只被-RAR-压缩文件支持。 
    os-保存-NTFS-流 
    此开关意味着只能在-Windows-NT-的-NTFS-文件系统下使用,并允许存储与文件相关联的交替数据串流。在像是使用来保持某些文件描述所依据的串流,在-Windows-2000-和-XP下尤其重要。如果你使用-RAR-来备份你的-NTFS-磁盘时,推荐你指定此参数。 
    此开关等同于界面模式-压缩文件名和参数-对话框的“储存文件串流”选项。 
    此开关仅支持-RAR-压缩文件。 
    ow-保存或恢复文件所有者和组 
    当压缩保存文件安全信息以及解压还原时,使用此开关参数。 
    WinRAR-储存拥有人,组,文件权限和校验信息,但这必须在你先有读取它们的权限前提下。注意,这只支持-Windows-下的-NTFS-文件安全系统。 
    此开关等同于界面模式-压缩文件名和参数-对话框的“储存文件安全数据”选项。 
    此开关只支持-RAR-压缩文件。 
    p[密码]-设置密码 
    在压缩或解压加密的压缩文件期间,设置密码-给-加密-的文件。密码的大小写必须匹配。在命令行时,如果你省略了密码,你将会被提示输入它。 
    在界面模式,密码也可以经由-输入默认密码-对话框或在-压缩文件名和参数-对话框输入。 
    例子: 
    使用密码-ZaBaToAd-来将文件夹“games”的内容添加到压缩文件“secret”。 
    WinRAR-a--pZaBaToAd--r-secret-games\*.* 
    注意 
    1)-如果你希望确保压缩文件的安全性,密码不要使用少于-8-个字符,或是容易被猜测出来的; 
    2)-不要忘记你的密码,否则你的数据将会完全丢失。 
    p--不询问密码 
    r-递归子目录 
    启用连同子文件夹,可使用于命令:-a、u、f、m、x、e、t、k、rr、c-和-s。 
    当使用于命令-a、u、f-或-m-时,不但只有当前工作的文件夹,且在全部子文件夹的文件将会一并处理。 
    当使用于命令-x、e、t、k、rr、c-或-s-时,不但只有当前工作的文件夹,且在全部子文件夹的压缩文件将会一并处理。 
    例子: 
    1)-添加磁盘-C-的内容到压缩文件-Backup 
    WinRAR-a--r-Backup-c:\*.* 
    2)-在当前的磁盘测试全部的-*.rar-压缩文件 
    WinRAR-t--r-\*.rar 
    r0-仅递归通配符名称的子目录 
    类似于-开关--r,但是与命令-a、u、f、m-合用时,只会连同包含通配符“*”和“?”的子文件夹名。 
    ri[:]-设置优先级(0-默认,1-最小..15-最大)和以毫秒为单位的休眠 
    此开关控制-WinRAR-的系统加载。可用的任务优先级-的值是-0---15。- 
    如果-是-0,WinRAR-使用默认优先级。-等于-1-设置最低的优先级,15-?最高的优先级。 
    休眠时间-是一个从-0-到-1000-(毫秒)的值。这是一个在每次压缩或解压的读取或写入操作后-WinRAR-返回系统的时间。如 
    果你需要减少使用-开关压缩系统加载,可以使用非零的-。 
    例子: 
    以默认优先级执行-WinRAR-并休眠-10-毫秒: 
    WinRAR-a--ri0:10-backup-*.* 
    rr[N]-添加数据恢复记录 
    此开关使用于当创建或修改压缩文件的时候,添加数据-恢复记录,包含-(n=1~524288)-个恢复扇区到压缩文件。你也可以附加-到百分号或字符“p”后来指定恢复记录大小占压缩文件大小的百分比。 
    此开关等同于界面模式的-压缩文件名和参数-的“添加恢复记录”选项。 
    当创建或修改一个压缩文件时使用这个开关来添加数据的-恢复记录,包含-(n=1_524288)-个恢复块到压缩文件中。你也可以附加-到字符“p”后来指定恢复记录大小占压缩文件大小的百分比。 
    界面模式中和这个开关等效的是-压缩文件名和参数-对话框中的“添加恢复记录”选项。 
    例子: 
    a)-从当前文件夹添加全部的-*.dbf-文件到压缩文件-WeeklyBackup,并添加-8-个扇区的数据恢复记录 
    WinRAR-a--rr8-WeeklyBackup-*.dbf 
    b)-从当前文件夹添加全部的-*.txt-文件到压缩文件-Books,并设置恢复记录大小为压缩文件总大小的-3% 
    WinRAR-a--rr3p-Books-*.txt 
    另请参阅-rr[N]命令-帮助和-恢复记录-主题。 
    rv[N]-创建恢复卷 
    这个开关在创建-多卷压缩文件-使用来创建-恢复卷。语法和-rv-命令-相同。 
    s[,v[-],e]-创建固实压缩文件 
    固实压缩是一种特殊的压缩方式。固实压缩文件-意味着以牺牲压缩文件更新速度来换取压缩效率。此开关只有在创建新-RAR-压缩文件-时才有意义。 
    此开关等同于界面模式的-压缩文件名和参数对话框-的“创建固实压缩文件”选项。 
    例子: 
    从当前文件夹添加全部的-*.c-和-*.h-文件到固实压缩文件-Sources 
    WinRAR-a--s-Sources-*.c-*.h 
    请参阅-固实压缩文件-章节来获得帮助信息。 
    s-类似于--s-,但在压缩-个文件之后重置-固实-统计数据。通常这样会减低压缩率,但也可以在固实压缩文件损坏时减少数据的丢失。 
    se-:-类似于--s,但扩展名更改时重置-固实-统计数据。通常这样会减低压缩率,但也可以在固实压缩文件损坏时减少数据的丢失。 
    sv-:-当开始一个新的-卷-时,RAR-默认尽可能的尝试重-固实-格式状态,但是只有前一个重置之后有足够的可用数据被打包(至少几兆字节)。这个开关会强制-RAR-忽略打包的数据大小,并试图对任何大小的分卷重置状态。这会降低压缩率,但在固实卷组中的卷丢失或损坏时可以增加解压部分数据的机会。 
    注意有时候-RAR-即使使用这个开关也无法重置状态。例如,当压缩一个大文件成许多分割卷时就不能问成。RAR-只能在分离文件之间重置状态,而不能用在单独文件上。 
    如果用来创建不带卷的压缩文件时忽略。 
    你也可以在-WinRAR-图形界面中设置这个选项到-RAR-环境变量-中。 
    sv-:-禁止-卷-之间重设-固实-状态。这将稍微提高压缩率,但是意味着如果固实卷丢失或损坏时减少解压部分数据的机会。 
    如果使用非分卷压缩文件时它将被忽略。 
    你也可以在-WinRAR-图形界面中设置这个选项到-RAR-环境变量-中。 
    另请查阅:-开关--sv 
    s--禁用固实压缩文件 
    即使在-压缩配置-对话框默认启用,也不使用-固实-格式压缩文件。 
    sfx[名称]-创建自解压压缩文件 
    当创建新压缩文件时使用此开关,将会创建一个自解压文件-(SFX)。-RAR-压缩文件默认使用的自解压模块是-Default.SFX-以及-ZIP-压缩文件为-Zip.SFX。这些模块必须与-winrar.exe-在同一个文件夹中。你也可以指定“-sfx”开关来代替自解压模块。 
    界面模式下,等同于此开关的是在-压缩文件名和参数-对话框的“创建自解压文件”选项。 
    例子: 
    a)-创建自解压的固实分卷压缩文件 
    WinRAR-a--sfx--v360--s-Games 
    a)-创建压缩文件使用-WinCon.SFX-模块 
    WinRAR-a--sfxWinCon.SFX-Gift.rar 
    另请参阅-s[名称]-命令。 
    st[名称]-从标准输入设备读取数据(stdin) 
    t-压缩后测试文件 
    压缩后测试文件。这个开关在和移动命令组合使用时非常有用,所以只有压缩文件已经被成功测试后,文件才会被删除。 
    ta-添加日期-后修改的文件,日期格式-YYYYMMDDHHMMSS 
    只处理指定日期之后修改的文件。 
    日期字符串的格式是-YYYYMMDDHHMMSS。它允许在日期字符串中插入‘-’或‘:’的分隔符,并忽略后部区域。例如,下列开关是正确的:-ta2001-11-20。在内部它被转换成--ta20011120000000-并作为“从2001年11月20日0时0分0秒后修改的区域”对待。 
    tb-添加日期-前修改的文件,日期格式-YYYYMMDDHHMMSS 
    只处理指定日期之前修改的文件。 
    日期字符串的格式是-YYYYMMDDHHMMSS。它允许在日期字符串中插入‘-’或‘:’的分隔符,并忽略后部区域。例如,下列开关是正确的:-ta2001-11-20。在内部它被转换成--ta20011120000000-并作为“从2001年11月20日0时0分0秒后修改的区域”对待。 
    tk-保留原始压缩文件时间 
    当压缩文件发生改变时,防止-WinRAR-修改压缩文件时间。 
    tl-设置压缩文件时间为最新文件时间 
    设置压缩文件的时间为压缩文件中最新的文件时间。强制-WinRAR-以在压缩文件中最新的文件时间修改压缩文件时间。 
    tn-添加-以后的文件 
    使用此开关时,只处理比指定时间还新的那些文件,时间字符串的格式为: 
    [d][h][m][s] 
    例如,使用开关--tn15d-可处理最近-15-天的文件,以及--tn2h30m-则处理最近-2-时-30-分的文件。 
    to-添加-以前的文件 
    使用此开关时,只处理比指定时间还旧的那些文件,时间字符串的格式为: 
    [d][h][m][s] 
    例如,使用开关--tn15d-可处理文件较旧于-15-天的,以及--tn2h30m-则处理文件较旧于-2-时-30-分的。 
    ts[N]-保存或恢复文件时间(修改,创建,访问) 
    开关--tsm-指示-WinRAR-保存文件的修改时间,-tsc---创建时间,tsa---最近访问时间。开关后的可选参数是-0-和-4-之间的数字来控制文件时间精度。值‘1’启用-1-秒的精确度,2---0.0065536-秒,-3---0.0000256,4-或-‘+’启用最大的-NTFS-时间精度,等于-0.0000001-秒。值‘0’或‘-’意味着创建和访问时间不保存,并且修改时间使用低的(两秒)时间精度。更高的精度模式添加更多的数据到压缩文件中,使用--tsm4--tsa4--tsc4-组合,让每个文件增加-19-个额外的字节。如果没有制定精度,RAR-使用‘4’(高)值。 
    默认的-WinRAR-模式是--tsm4--tsc0--tsa0,所以高精度的修改时间被存储,其它时间被忽略。 
    当解压文件(精度不相关,但是必须是-0)时指定--tsc-和--tsa-开关来设置创建和访问时间是必需的。默认-WinRAR-只设置修改 
    时间,即使压缩文件包含创建和最近修改时间。设置修改时间来解压文件也可以使用--tsm--禁用。 
    如果你需要把这个开关应用到所有的三个时间,也可能忽略这三个类型字母。例如,-tsm4--tsa4--tsc4-能被--ts4,--ts+-或--ts-代替。使用--ts--来只保存低精度的修改时间,或者忽略所有三个文件时间解压。 
    当创建一个压缩文件时,如果高的模式不被文件系统支持,WinRAR-会自动减少精度。在-FAT-中不会超过两秒,在-Unix-中不会超过-1-秒。NTFS-时间精度是-0.0000001-秒。 
    操作系统的时间限制解压时能被设置。Windows-允许设置三个时间,Unix---修改时间和最近访问时间,没有创建时间,DOS-只支持修改时间。 
    例子: 
    1)-使用最高精确度存储所有文件时间。 
    winrar-a--ts-backup 
    2)-存储修改和最近访问时间。开关--tsm-不是不必需的,因为-RAR-默认使用它。 
    winrar-x--tsa-backup 
    3)-存储地精确度的修改和创建时间。没有--tsm1-RAR-不会保存高精确的的修改时间。 
    winrar-a--tsm1--tsc1-backup 
    u-更新文件 
    这可与压缩文件解压和创建时合用。命令字符串-a--u-是等同于命令-u-。你也可以使用开关“-u”于命令令-m。 
    如果开关“-u”使用于命令-x-或-e-,这时从压缩文件解压,有最近使用的文件,只有在旧文件有新版本时才会替换。这不和--f-一样,如果压缩文件没有符合的未压缩文件,它将会被解压。 
    界面模时下,相当于此开关的是在-压缩文件名和参数对话框-的“添加并更新文件”选项和在-解压路径和选项对话框-的“解压并更新文件”选项。 
    v-自动检测创建卷的大小或者列出所有的卷 
    v[k,b]-创建卷大小=*1000-[*1024,-*1]创建-卷-及大小-=-*1000 
    默认-此开关使用-作为一千个-(1000)-字节-(非-1024-x-字节)。你也可以输入符号“k”来表示千字节的大小,或者符号“b”表示字节,在百万字节为--“m”,一百万个字节为--“M”,G字节-枴癵”,-十亿个字节-枴癎”或者使用符号“f”从数个预先定义的数值中选取一个。-预先定义的数值有-360、720、1200、1440-或-2880-并会替换成一致的磁盘大小。如果省略了大小,将会使用自动检测。你可以指定几个--v-开关来为不同的卷设置不同的大小。例如: 
    rar-a--v100k--v200k--v300k-arcname 
    第一卷设为-100-KB-大小,-第二卷设为-200-KB,-剩下的为-300-KB。 
    如果分卷在可移动磁盘创建,在创建第一个分卷之后,用户将会被提示: 
    创建下一个分卷吗?-:-是/否/创建全部-在此时间里,你可以抽换磁盘。回答“全部”则会创建全部的分卷而不会暂停。 
    默认-RAR-卷以‘volname.partNNN.rar’格式命名,NNN-的地方是卷号。使用--vn-开关开关可能转换成其它的扩展基本命名规则,卷组中第一卷文件由-.rar-的扩展名,以后卷从-.r00-到-.r99-命名。 
    当解压或测试多片的分卷压缩文件时,你只能使用第一个分卷的名称。如果下一个分卷不在驱动器时,用户会被提示:请插入磁盘-。 
    确定/取消 
    这时请插入正确的分卷并按下“确定”。 
    压缩文件分卷是无法修改的。命令-d,f,u-或-s-也不能使用于多片的分卷压缩文件。命令-a-只可以在创建新的多片分卷压缩时使用。 
    这是可能的,虽然不和在多卷中文件的大小一样,但可以大于未压缩的大小。此事实的缘由是“存储”(如果大小增加时不压缩)-不能在多片的分卷压缩中启用。 
    压缩文件分卷可以是-固实-以及/或是-自解压。 
    此开关等同于界面模式-压缩文件名和参数-对话框的“分割成卷”区域。 
    例子: 
    创建-1200000-字节大小的固实,分卷自解压文件 
    WinRAR-a--v1200--s--sfx-bitmaps 
    vd-创建卷前清除磁盘内容 
    当使用“-vd”时,在开始压缩操作之前,全部在目标磁盘的文件和文件夹将会先清除。如果你创建-分卷-,在创建每一个分卷之前,都将先运行清除操作,以让你可以放入非空白的磁盘,但你必须注意在磁盘上不包含任何的有用信息。 
    此开关只能应用在可移动磁盘,硬盘是无法使用它清除的。 
    ver[n]-文件版本控制 
    当在已经存在的压缩文件中更新文件时,强制-RAR-保留前一文件版本。旧版本被命名为‘filename;n’,‘n’处是版本号。仅只吃-RAR-压缩文件。 
    当时不使用开关--ver-解压一个压缩文件,rar-默认只解压最近添加地文件版本,它的名字不能包含数字后缀。但是如果你正确指定了文件名,包括版本,它也可以解压。例如,‘rar-x-arcname’将只解压组新版本,当使用‘rar-x-arcname-file.txt;5’将解压‘file.txt;5’,如果它在压缩文件中存在的话。 
    解压时如果你不带参数指定--ver-开关,-RAR-将解压所有和文件掩码匹配的所有文件中的所有版本。这样版本号没有从未压缩文件名中删除。你也可以使用数字作为--ver-的参数来解压一个具体的文件版本。它将告诉RAR只解压这个版本并从文件名中删除版本号。例如,‘rar-x--ver5-arcname’将只解压第五版本文件。 
    如果压缩时你指定了‘n’参数,它会限制在压缩文件中文件版本的最大数字。超过此限制的旧的文件版本会被移除。 
    vn-使用旧风格的卷命名方案 
    默认-RAR-卷-以‘volname.partNNN.rar’-格式命名,NNN的地方是卷号。使用--vn-开关可能转换成其它的扩展基本命名规则,卷组中第一卷文件由-.rar-的扩展名,以后卷从-.r00-到-.r99-命名。它可能有用,如果你要在MS-DOS下解压一个压缩文件时,不允许在文件名中超过一个点‘.’。 
    vp-每卷之前暂停 
    默认-RAR-仅在可移动磁盘创建,或解压下一个分卷之前才会询问确认。此开关强制永远作如此的确认。如果磁盘空间有限,并且你希望在创建之后立即复制每一个分卷到另外的磁盘时,这会相当有用。 
    w-指定工作目录 
    x-排除指定的文件 
    排除指定文件,统配符可以用在名称和文件掩码的文件部分。-在同一命令行你可以指定开关‘-x’数次: 
    如果掩码包含通配符,它应用到当前目录和它的子目录。没有通配符它不递归,所以如果你要在所有文件夹中排除某些“文件名”,你需要指定两个掩码:用于当前目录的“文件名”和用于子目录的“*\filename”。如果你知道一个文件的确切路径,你可以是使用“路径\文件名”语法来仅排除-“文件名”的此副本。如果你在解压一个压缩文件时使用--x路径\文件名-语法,“路径”必须是一个压缩文件内的路径,而不是在解压后的磁盘上的文件路径。 
    例子: 
    添加全部-*.exe-文件到压缩文件-bin,但排除有-f-开头名称的文件 
    WinRAR-a--xf*.*-bin-*.exe 
    2)-压缩C:上除了Temp文件夹外的所有文件 
    WinRAR-a--r--x*\temp\*-savec-c:\* 
    3)-从文件-docs.rar-中解压所有的除了-*.txt-外的所有文件 
    WinRAR-x--x*.txt-docs 
    x@-从标准输入设备读取要排除的文件名 
    x@-排除指定列表文件中的文件 
    排除存在列表文件-名称的文件 
    例子: 
    添加全部-*.exe-文件到压缩文件-bin,但是如果名称存在-list.txt-的则排除。 
    WinRAR-a-[url=mailto:-x@list.txt]-x@list.txt[/url]-bin-*.exe 
    y-假设对全部询问都回答是 
    如果指定了此开关,“是”为默认值,并自动回应全部的询问。 
    z-从文件读取压缩文件注释 
    如果此开关与任何的压缩文件更新命令合用时,将会从指定的文件读取注释,添加到压缩文件中。 
    例子: 
    从当前文件夹添加全部文件到-固实压缩文件-Receipts,并从-Receipts.diz-添加文件注释- 
    WinRAR-a--zReceipts.diz--s-Receipts 
      - -此开关会告知-WinRAR-在命令行已没有其它的开关了。它是使用在,如果压缩文件名或文件名是从“-”字符开始的时候。没有“--”开关时,则会将此类名称当成开关来处理。 
    例子: 
    从当前文件夹添加全部文件到-固实-压缩文件--StrangeName 
    WinRAR-a--s-----StrangeName 
    winrar-退出代码- 
    WinRAR-在成功操作的情况下以-0-代码退出。非零退出代码表示下列错误: 
    代码值-描述 
    0-成功操作。 
    1-警告。发生非致命错误。 
    2-发生致命错误。 
    3-解压时发生-CRC-错误。 
    4-尝试修改一个-锁定的压缩文件。 
    5-写错误。 
    6-文件打开错误。 
    7-错误命令行选项。 
    8-内存不足。 
    9-文件创建错误。 
    255-用户中断。
    展开全文
  • 1.压缩文件夹及其下文件 2.压缩文件夹下文件 3.压缩文件夹及其下文件为rar 还是 zip 4.解压缩 5.加密压缩及解加密压缩 ----------- 示例代码如下: protected void Button1_Click(object sender, EventArgs e)...

    转自:http://www.jb51.net/article/68916.htm

     

    本次示例主要实现:
    1.压缩文件夹及其下文件
    2.压缩文件夹下文件
    3.压缩文件夹及其下文件为rar 还是 zip
    4.解压缩
    5.加密压缩及解加密压缩
    -----------
    示例代码如下:

    protected void Button1_Click(object sender, EventArgs e)
    
      {
    
        string strtxtPath = "C://freezip//free.txt";
    
        string strzipPath = "C://freezip//free.zip";
    
        System.Diagnostics.Process Process1 = new System.Diagnostics.Process();
    
        Process1.StartInfo.FileName = "Winrar.exe";
    
        Process1.StartInfo.CreateNoWindow = true;
    
    
    
         1
    
        压缩c:/freezip/free.txt(即文件夹及其下文件freezip/free.txt)
    
        到c:/freezip/free.rar
    
        //strzipPath = "C://freezip//free";//默认压缩方式为 .rar
    
        //Process1.StartInfo.Arguments = " a -r " + strzipPath + " " + strtxtPath;
    
    
    
         2
    
        压缩c:/freezip/free.txt(即文件夹及其下文件freezip/free.txt)
    
        到c:/freezip/free.rar
    
        //strzipPath = "C://freezip//free";//设置压缩方式为 .zip
    
        //Process1.StartInfo.Arguments = " a -afzip " + strzipPath + " " + strtxtPath;
    
    
    
         3
    
        压缩c:/freezip/free.txt(即文件夹及其下文件freezip/free.txt)
    
        到c:/freezip/free.zip 直接设定为free.zip
    
        //Process1.StartInfo.Arguments = " a -r "+strzipPath+" " + strtxtPath ;
    
    
    
         4
    
        搬迁压缩c:/freezip/free.txt(即文件夹及其下文件freezip/free.txt)
    
        到c:/freezip/free.rar 压缩后 原文件将不存在
    
        //Process1.StartInfo.Arguments = " m " + strzipPath + " " + strtxtPath;
    
    
    
         5
    
        压缩c:/freezip/下的free.txt(即文件free.txt)
    
        到c:/freezip/free.zip 直接设定为free.zip 只有文件 而没有文件夹
    
        //Process1.StartInfo.Arguments = " a -ep " + strzipPath + " " + strtxtPath;
    
    
    
         6
    
        解压缩c:/freezip/free.rar
    
        到 c:/freezip/
    
        //strtxtPath = "c://freezip//";
    
        //Process1.StartInfo.Arguments = " x " + strzipPath + " " + strtxtPath;
    
    
    
         7
    
        加密压缩c:/freezip/free.txt(即文件夹及其下文件freezip/free.txt)
    
        到c:/freezip/free.zip 密码为123456 注意参数间不要空格
    
        //Process1.StartInfo.Arguments = " a -p123456 " + strzipPath + " " + strtxtPath;
    
    
    
         8
    
        解压缩加密的c:/freezip/free.rar
    
        到 c:/freezip/  密码为123456 注意参数间不要空格
    
        //strtxtPath = "c://freezip//";
    
        //Process1.StartInfo.Arguments = " x -p123456 " + strzipPath + " " + strtxtPath;
    
    
    
        Process1.Start(); 
    
        if (Process1.HasExited)
    
        {
    
          Response.Write("完成");
    
        }
    
      }

    # re: C# (加密)压缩及解压缩 相关文件夹及文件

    更多WinRAR命令(引自WinRAR帮助文档) 
    a 添加文件到压缩文件 
    c 添加压缩文件注释 
    d 从压缩文件删除文件 
    e 从压缩文件解压压缩,忽略路径 
    f 刷新压缩文件中的文件 
    i 在压缩文件中查找字符串 
    k 锁定压缩文件 
    m 移动文件和文件夹到压缩文件 
    r 修复受损的压缩文件 
    rc 重建丢失的卷 
    rn 重命名压缩文件 
    rr[N] 添加数据恢复记录 
    rv[N] 创建恢复卷 
    s[name] 转换压缩文件成为自解压文件类型 
    s- 删除自解压模块 
    t 测试压缩文件 
    u 从压缩文件中更新文件 
    x 以完整路径名称从压缩文件解压压缩  回复  更多评论  

    # re: C# (加密)压缩及解压缩 相关文件夹及文件

    更多WinRAR字母开头(引自WinRAR帮助文档) 
    -ac 在压缩或解压后清除存档属性 
    -ad 附加压缩文件名到目标路径中 
    -af<类型> 指定压缩文件格式 
    -ag[格式] 以当前日期生成压缩文件名 
    -ao 添加有存档属性设置的 
    -ap 设置内部压缩文件路径 
    -as 同步化压缩文件内容 
    -av 应用用户身份校验信息 
    -av- 禁用添加用户身份校验信息 
    -cfg- 忽略默认配置和环境变量 
    -cl 将文件名转换成为小写 
    -cu 将文件名转换成为大写 
    -df 压缩后删除压缩文件 
    -dh 打开共享的文件 
    -ds 不排序压缩的文件 
    -ed 不添加空文件夹 
    -en 不添加“压缩文件结束”块 
    -ep 从名称中排除路径 
    -ep1 从名称中排除主文件夹 
    -ep2 扩大成完整路径 
    -ep3 扩展包含盘符的完整路径 
    -e[+]<属性> 设置文件排除和包含属性 
    -f 刷新文件 
    -hp[密码] 加密文件数据和头 
    -ibck 在后台运行 WinRAR 
    -ieml 使用E-mail发送压缩文件 
    -iicon<名称> 指定自解压图标 
    -iimg<名称> 指定自解压图片 
    -ilog[名称] 记录错误到文件中 
    -inul 关闭错误信息 
    -ioff 关闭 PC 电源 
    -k 锁定压缩文件 
    -kb 保留坏掉的解压文件 
    -m<n> 设置压缩方式 
    -mc<参数> 设置高级压缩参数 
    -md<n> 选择字典大小 
    -ms 指定文件存储 
    -n<文件> 仅包含指定的文件 
    -n@<列表文件> 使用指定的列表文件包含文件 
    -os 保存 NTFS 数据流 
    -oc 设置 NTFS “压缩”属性 
    -ow 处理文件用户身份校验信息 
    -o+ 覆盖已存在的文件 
    -o- 不要覆盖已存在的文件 
    -p[密码] 设置密码 
    -r 返回子文件夹 
    -r0 只返回与通配符匹配的子文件夹 
    -ri 设置优先级和休眠时间 
    -rr[N] 添加数据恢复记录 
    -rv[N] 创建恢复卷 
    -s 创建固实压缩文件 
    -s<N> 以文件数量创建固实组 
    -se 以文件扩展名创建固实组 
    -sfx[名称] 创建自解压文件 
    -sv 创建互不依赖的固实压缩文件 
    -sv- 创建互相依赖的固实压缩文件 
    -s- 禁用固实算法 
    -t 压缩后测试文件 
    -ta<日期> 只处理指定日期之后修改的文件 
    -tb<日期> 只处理指定日期之前修改的文件 
    -tk 保持原有压缩文件时间 
    -tl 以最新的文件设置压缩文件时间 
    -tn<时间> 处理较新于指定时间的文件 
    -to<时间> 处理较旧于指定时间的文件 
    -ts<m,c,a> 保存或恢复文件时间(修改,创建,访问) 
    -u 更新文件 
    -v<n>[k|b|f|m|M|g|G] 创建分卷压缩 
    -vd 创建分卷压缩前清除磁盘内容 
    -ver 文件版本控制 
    -vn 使用旧风格的卷命名法则 
    -vp 每次分卷压缩前暂停 
    -x<文件> 排除指定的文件 
    -x@<文件列表> 使用指定的列表文件来排除指定的文件 
    -y 假设全部的询问回应皆为“是” 
    -z<文件> 从文件读取压缩文件注释 
    -- 停止开关的扫描

     

                string strtxtPath = "D://";
                string strzipPath = "D://test.rar";
    
                System.Diagnostics.Process Process1 = new System.Diagnostics.Process();
                Process1.StartInfo.FileName = "Winrar.exe";
                Process1.StartInfo.CreateNoWindow = true;
    
                Console.WriteLine(DateTime.Now);
                Console.WriteLine("开始暴力解密:");
                int count = 0;
                string pwd = string.Empty;
                for (int a = 0; a < 10; a++)
                {
                    for (int b = 0; b < 10; b++)
                    {
                        for (int c = 0; c < 10; c++)
                        {
                            for (int d = 0; d < 10; d++)
                            {
                                count++;
                                pwd = "" + a + b + c + d;
                                Console.WriteLine(DateTime.Now);
                                Console.WriteLine("第"+count+"次尝试: pwd = "+pwd);
                                Process1.StartInfo.Arguments = " x -p"+ pwd + " " + strzipPath + " " + strtxtPath;
                                Process1.Start();
                                System.Threading.Thread.Sleep(3 * 1000);
                                if (Process1.HasExited)
                                {
                                    Console.WriteLine("解密成功!");
                                    Console.WriteLine("密码为:"+pwd);
                                    Console.ReadLine();
                                }
                                else
                                {
                                    KillProcess("WinRAR");
                                    Console.WriteLine();
                                }
                            }
                        }
                    }
                }
                Console.ReadLine();
            }
    
            private static void KillProcess(string processName)
            {
                Process[] myproc = Process.GetProcesses();
                foreach (Process item in myproc)
                {
                    if (item.ProcessName == processName)
                    {
                        item.Kill();
                    }
                }
            }

     

    展开全文
  • Java使用winrar压缩和解压缩文件

    千次阅读 2017-10-18 14:17:32
    Java使用winrar压缩和解压缩文件 2015-08-17| 发布: | 浏览: 740 |保存PDF Winrar可以使用命令行进行压缩和解压缩,如: 将D:/aa.doc 压缩为:aa.rar d:/winrar/rar a d:/aa.rar d:/aa.doc 将aa....

    Java使用winrar压缩和解压缩文件

    2015-08-17| 发布: | 浏览: 740 |保存PDF

    Winrar可以使用命令行进行压缩和解压缩,如:

    将D:/aa.doc 压缩为:aa.rar

    d:/winrar/rar a d:/aa.rar d:/aa.doc


    将aa.rar中的aa.doc解压到F:盘

    rar e d:/aa.rar F:  


    将aa.rar转换成自解压文件

    rar s aa,rar(默认转换到同级目录下了)  


    winrar命令行相关参数:

    用法: rar <命令> -<开关1> -<开关 N> <压缩文件> <文件...>
    <@列表文件...><解压路径\>
    <命令>
    a 添加文件到压缩文件
    c 添加压缩文件注释

    cf 添加文件注释

    ch 改变压缩文件参数

    cw 写入压缩文件注释到文件

    d 删除压缩文件中的文件

    e 解压压缩文件到当前目录

    f 刷新压缩文件中的文件

    i[参数]=<> 在压缩文件中查找字符串

    k 锁定压缩文件

    l[t,b] 列出压缩文件[技术信息,简洁]
    m[f] 移动到压缩文件[仅对文件]
    p 打印文件到标准输出设备

    r 修复压缩文件

    rc 重建丢失的卷

    rn 重命名压缩文件

    rr[N] 添加数据恢复记录

    rv[N] 创建恢复卷

    s[名字|-] 转换压缩文件为自解压格式或转换回压缩文件

    t 测试压缩文件

    u 更新压缩文件中的文件

    v[t,b] 详细列出压缩文件[技术信息,简洁]
    x 用绝对路径解压文件

    <开关>
    - 停止扫描

    ac 压缩或解压后清除存档属性

    ad 添加压缩文件名到目标路径

    ag[格式] 使用当前日期生成压缩文件名

    ai 忽略文件属性

    ao 添加具有压缩属性的文件

    ap<格式>添加路径到压缩文件中

    as 同步压缩文件内容

    av 添加用户身份校验(仅注册版本可用)
    av- 禁用用户身份校验

    c- 禁用注释显示

    cfg- 禁用读取配置

    cl 名称转换为小写

    cu 名称转换为大写

    df 压缩后删除文件

    dh 打开共享文件

    dr 删除文件到回收站

    ds 对固实压缩文件禁用名称排序

    dw 档案处理后清除文件

    e[+]<属性>设置文件排除和包括属性

    ed 不添加空目录

    en 不添加"压缩文件结束"标志

    ep 从名称中排除路径

    ep1 从名称中排除基本目录

    ep2 展开为完整路径

    ep3 扩展路径为包含盘符的完全路径

    f 刷新文件

    hp[密码] 同时加密文件数据和文件头

    id[c,d,p,q] 禁用消息

    ieml[属性] E-mail 发送压缩文件

    ierr 发送所有消息到标准错误设备

    ilog[名称]把错误写到日志文件(只有注册版本可用)
    inul 禁用所有消息

    ioff 完成一个操作后关闭PC 电源

    isnd 启用声音

    k 锁定压缩文件

    kb 保留损坏的已解压文件

    m<0..5> 设置压缩级别(0-存储...3-默认...5-最大)
    mc<参数>设置高级压缩参数

    md<大小>KB为单位的字典大小(64,128,256,512,1024,2048,4096or A-G)
    ms[ext;ext] 指定存储的文件类型

    mt<线程>设置线程数

    n<文件>仅包含指定的文件

    n@ 从标准输入设备读取文件名到包括

    n@<列表>包含在指定的列表文件中列出的文件

    o[+|-] 设置覆盖模式

    oc 设置 NTFS 压缩属性

    or 自动重命名文件

    os 保存 NTFS

    ow 保存或恢复文件所有者和组

    p[密码] 设置密码

    p- 不询问密码

    r 递归子目录

    r- 禁用递归

    r0 仅递归通配符名称的子目录

    ri<P>[:<S>] 设置优先级(0-默认,1-最小..15-最大)和以毫秒为单位的休眠时间

    rr[N] 添加数据恢复记录

    rv[N] 创建恢复卷

    s[<N>,v[-],e] 创建固实压缩文件

    s- 禁用固实压缩文件

    sc<chr>[obj] 指定字符集

    sfx[名称] 创建自解压压缩文件

    st[名称] 从标准输入设备读取数据(stdin)
    sl<大小>处理小于指定大小的文件

    sm<大小>处理超过指定大小的文件

    t 压缩后测试文件

    ta<日期>添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS
    tb<日期>添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS
    tk 保留原始压缩文件时间

    tl 设置压缩文件时间为最新文件时间

    tn<时间>添加 <时间> 以后的文件

    to<时间>添加 <时间> 以前的文件

    ts<m,c,a>[N] 保存或恢复文件时间(修改,创建,访问)
    u 更新文件

    v 自动检测创建卷的大小或者列出所有的卷

    v<大小>[k,b]创建卷大小=<大小>*1000 [*1024, *1]
    vd 创建容量前清除磁盘内容

    ver[n] 文件版本控制

    vn 使用旧风格的卷命名方案

    vp 每卷之前暂停

    w<路径>指定工作目录

    x<文件>排除指定的文件

    x@ 从标准输入设备读取要排除的文件名

    x@<列表>排除在指定的列表文件中列出的文件

    y 假设对全部询问都回答是

    z[文件] 从文件读取压缩文件注释

    Java解压缩winrar文件

    实现的思路是使用java.lang.Process调用winrar.exe实现。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    package common;
      
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.InputStreamReader;
      
    /**
      * 解压rar文件(需要系统安装Winrar 软件)
      * @author Michael sun
      */
    public class UnRarFile {
         /**
          * 解压rar文件
          *
          * @param targetPath
          * @param absolutePath
          */
         public void unRarFile(String targetPath, String absolutePath) {
      
             try {
      
                 // 系统安装winrar的路径
                 String cmd = "C:\\Program Files\\WinRAR\\winrar.exe" ;
                 String unrarCmd = cmd + " x -r -p- -o+ " + absolutePath + " "
                         + targetPath;
      
                 Runtime rt = Runtime.getRuntime();
                 Process pre = rt.exec(unrarCmd);
                 InputStreamReader isr = new InputStreamReader(pre.getInputStream());
                 BufferedReader bf = new BufferedReader(isr);
                 String line = null ;
                 while ((line = bf.readLine()) != null ) {
                     line = line.trim();
                     if ( "" .equals(line)) {
                         continue ;
                     }
                     System.out.println(line);
                 }
      
                 bf.close();
             } catch (Exception e) {
                 System.out.println( "解压发生异常" );
             }
         }
      
         /**
          * @param args
          */
         public static void main(String[] args) {
             String targetPath = "D:\\test\\unrar\\" ;
             String rarFilePath = "D:\\test\\test.rar" ;
             UnRarFile unrar = new UnRarFile();
             unrar.unRarFile(targetPath, rarFilePath);
         }
      
    }



    java调用winrar进行加密压缩,并将压缩内的文件重命名

    由于目前java api和ant的压缩都不支持加密,所以使用调用winrar的方式来操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    private String generalZipFile() {
         StringBuffer cmd = new StringBuffer(winrarPath); //安装的winrar路径
          cmd.append( "  a -p" );
         cmd.append(passWord); //压缩密码
          cmd.append( " -ibck -ep " ); //-ibck命令为后台压缩
          cmd.append(zipFilePath); //压缩后zip文件的路径
          cmd.append( " " );
         cmd.append(downloadFilePath); //源文件路径
          try {
             Process proc = Runtime.getRuntime().exec(cmd.toString());
             if (proc.waitFor() != 0 ) //waitFor将返回exitValue的值0表示正常结束
                 return ;
             StringBuffer rName= new StringBuffer(winrarPath);
             rName.append( " rn " );
             rName.append(zipFilePath);
             rName.append( " " );
             rName.append(newFileName); //新文件名
             rName.append( " " );
             rName.append(oldFileName); //旧文件名
              rName.append( " -ibck" ); //旧文件名
              Process rNameProc = Runtime.getRuntime().exec(rName);
             if (rNameProc .waitFor() != 0 )
                 return ;
            } catch (Exception e){
               log.info( "加密重命名压缩失败" );
            }
            return "generalZipFileSuccess" ;
    }



    winrar 压缩你指定的文件列表中的文件
    rar a -ep1 F:/test.ZIP @F:/fileList.txt

    F:/test.ZIP 是你的压缩后的文件
    F:/fileList.txt是文件列表


    使用winrar解压文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public void unRarFile(String targetPath, String absolutePath) {
    try {
             File tar = new File(targetPath);
             if (!tar.exists()){
    tar.getParentFile().mkdirs();
    tar.mkdir();
         }
             // 系统安装winrar的路径
             String cmd = "C:/Program Files/WinRAR/WinRAR.exe" ;
             String unrarCmd = cmd + " x -r -p- -o+ " + absolutePath + " " + targetPath;
               
             Runtime rt = Runtime.getRuntime();
             //Process pre = rt.exec(unrarCmd);
             rt.exec(unrarCmd);
         } catch (Exception e) {
             System.out.println( "解压发生异常" );
         }
    }



    整理于网络


    展开全文
  • bat中rar压缩命令

    千次阅读 2019-05-17 17:31:19
    数据库备份,导出的dmp 文件比较大,需要压缩压缩后大小能变为原来十分之一左右吧。 写的是批处理的语句,每天调用,自动导出dmp 文件压缩删除原文件。 首先写下路径,先将压缩软件的路径写入系统的环境变量里...
  • -s :创建固实压缩文件; -ibck :后台运行; c:/bak.rar :备份的路径和基本名称(-ag参数会自动在bak后加上系统当前时间), 也可不用-ag参数,通过“%date: 0,4%%date: 5,2%%date:~8,2%”取得时间字串, 也可写作c...
  • 【1】ZIP,是一个文件压缩的算法,原名Deflate(真空),发明者为菲利普·卡兹(Phil Katz)),他于1989年1月公布了该格式的资料。ZIP通常使用后缀名“.zip”,它的MIME格式为 application/zip 。目前,ZIP格式...
  • sql server异备相关参考:... 1、压缩本地文件,并把压缩后的文件复制到其他机器 net use Z: \\192.168.135.1\share_linux a123456! /user:chaoqun.guo set bath=c:\backup\ set today=%da...
  • 创建高压缩率的压缩文件

    千次阅读 2014-01-14 23:40:31
    把300多MB的文件压缩成了一个不...第一步 选中并右击要压缩的文件,选择“添加到压缩文件”,在“常规”标签下选择“创建固实压缩文件”,并在“压缩方式”下选择“最好”。第二步 点击“高级”标签下的“压缩”按钮,
  • 用python进行批量文件的解压缩/压缩批量文件7z的命令行参数7z压缩文件的命令行参数7z解压文件的命令行参数 7z的命令行参数 python可以通过subprocess模块的相关函数运行外部程序,完成一些操作。如本文要介绍的...
  • rar压缩软件.rar

    2016-02-13 10:52:44
    rarfiles.lst 包含一个用户定义的文件列表,告诉 RAR 添加文件到固实压缩文件时的顺 序。它可以包含文件名通配符和指定项目 -$default。默认项目定义了这个文件中与 其他项目不相符时的顺序清单位置。 注释字符是...
  • [none|force] r 递归子目录 r- 禁用递归 r0 递归子目录仅用于通配符名称 ri [: ] 设置优先级 (0-默认,1-最小.15-最大) 和休眠时间单位为 rr[N] 添加数据恢复记录 rv[N] 创建恢复卷 s[,v[-],e] 创建固实压缩文档 ...
  • 废了几个小时时间整java解压缩zip这玩意,总算写出来了,呵呵,希望对看到朋友有用! 用到了ant.jar来解决压缩中的中文乱码问题。 package unzip; import java.io.BufferedInputStream; import java.io...
  • 1.压缩文件夹及其下文件 2.压缩文件夹下文件 3.压缩文件夹及其下文件为rar 还是 zip 4.解压缩 5.加密压缩及解加密压缩 ----------- 示例代码如下: protected void Button1_Click(object sen
  • JAVA利用cmd命令行调用WINRAR解压及压缩     前言 对于zip文件,java有自带类库java.util.zip;可是要想解压rar文件只能靠第三方类库,我试过两个:com.github.junrar和de.innosystec.unrar,前者解压时可能会...
  • 添加文件到压缩文件 c 添加压缩文件注释 cf 添加文件注释 cw 写入压缩文件注释到文件 d 删除压缩文件中的文件 e 解压压缩文件到当前目录 f 刷新压缩文件中的文件 i[参数]=<串> 在压缩文件中查找...
  • 利用VC调用WinRAR解压和压缩文件

    千次阅读 2013-11-17 22:47:05
    利用WinExec,CreateProcess,ShellExecute都可以调用WinRAR.exe来进行文件压缩与解压。 首先要从注册表获取WinRAR的安装路径,参考代码 [cpp] view plaincopyprint? CString GetWinRARPath() { ...
  • ds 对固实压缩文件禁用名称排序 e[+]<属性> 设置文件排除和包括属性 ed 不添加空目录 en 不添加"压缩文件结束"标志 ep 从名称中排除路径 ep1 从名称中排除基本目录 ep2 展开为完整路径 ep3 ...
  • 前端面试题

    万次阅读 多人点赞 2019-08-08 11:49:01
    每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗? 21 Quirks模式是什么?它和Standards模式有什么区别 21 div+css的布局较table布局有什么优点? 22 img的alt与title有何异同? strong与em的...
  • Centos 下解压和压缩rar文件

    千次阅读 2018-04-01 15:22:05
    在liunx下原本是不支持rar文件的,需要安装liunx下的winrar版本,操作如下http://www.rarsoft.com/download.htm 下载页面wget http://www.rarsoft.com/rar/rarlinux-4.0.1.tar.gz tar -zxvf rarlinux-4.0.1.tar....
  •  注,固实压缩就是压缩后文档内容不可变更的压缩方式,这和lock不一样。因为使用普通压缩  要照顾以后的插入删除个别文件的需要,就要留下很多操作余地。而固实压缩则不可以对  其内容进行任何更新,所以...
  • 压缩文件

    2019-09-28 08:23:11
    一:使用DotNetZip(文件名含有中文,出现乱码,暂无解决).dll文件下载http://www.codeplex.com/DotNetZip/Release/ProjectReleases.aspx?ReleaseId=12712 Codepublic void CompressWholeFolder( string ...
  • C# 压缩文件

    千次阅读 2010-05-25 17:42:00
    -s :创建固实压缩文件; -ibck :后台运行; c:/bak.rar :备份的路径和基本名称(-ag参数会自动在bak后加上系统当前时间), 也可不用-ag参数,通过“%date:~0,4%%date:~5,2%%date:~8,2%”取得时间字串, 也可写作c...
  • 利用WinRAR命令行压缩文件或文件夹

    千次阅读 2019-03-11 10:11:00
    压缩文件夹winrar.exe a -ag -k -r -s -ibck c:/bak.rar c:/dat/ 压缩多个文件winrar a -ag -ibck bak.rar filename1 filename2 参数说明winrar.exe:运行winrar,如果winrar.exe没在默认路径中则需要指明路径,如c:...
  • WinRAR命令行参数整理

    千次阅读 2019-10-27 21:59:18
    将D:/wk.doc 压缩为:final.rar d:/winrar/rar a d:/final.rar d:/wk.doc 将final.rar中的wk.doc解压到F:盘 rar e d:/final.rar F: 将final.rar转换成自解压文件 rar s final,rar(默认转换到同级目录下了) 给自解压...
  • Windows命令行WINRAR压缩和解压缩

    千次阅读 2019-04-27 17:34:13
    (1)基础: 1>需先安装WINRAR。 2>安装后配有使用手册:WinRAR/WinRAR.chm。 ...命令行可压缩、解压缩、加密压缩...添加文件夹 "c:\latest data" 到压缩文件 Info.rar 中 WinRAR aInfo.rar "c:\latest data...
  • – 支持恢复记录,恢复卷,固实压缩,多核压缩,设置加密,设置配置文件,设置默认配置,重新组织配置文件 – 支持压缩后删除源文件,设置压缩文件名称,可选:标准,最快,较快,较好,最好等压缩方式,自定义字典...
  • 将这张图片下载到本地,修改文件后缀为 .rar,然后再解压,你会得到四个文件 这其中有一个「说明.txt」里面是这样写的: 每年,世界各地著名的Warez组织都会推出一个小的动画片来比较,仅仅是用来炫耀其实
  • @echo off::如果E盘没有Output文件夹,创建Output。if not exist "F:\test\d" mkdir "F:\test\d"::将目的里面的所有文件和文件夹压缩成单独的压缩文件,并放到E:\Output。for /f "usebackq token

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,945
精华内容 778
关键字:

创建固实压缩文件