http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 31417|回复: 3

[综合] cmd执行Zip压缩命令WinRAR并隐藏进度窗口

[复制链接]
发表于 2013-4-16 13:33:37 | 显示全部楼层 |阅读模式
  1. WinRAR     <命令>   -<开关1>   -<开关N>   <压缩文件>   <文件...>   <@列表文件...>   <解压路径\>   
  2. 命令 要   WinRAR   运行的字符组合代表功能   
  3.   开关 切换操作指定类型,压缩强度,压缩文件类型,等等的定义。   
  4.   压缩文件 要处理的压缩文件名。   
  5.   文件 要处理的文件名。   
  6.   列表文件 列表文件是包含要处理文件名称的纯文本。文件名应该在第一卷启动。可以在列表文件中使用//字符后添加注释。例如,你可以包含两列字符串创建   backup.lst:c:\work\doc\*.txt   //备份文本文档           c:\work\image\*.bmp   //备份图片c:\work\misc并接着运行:   winrar   a   backup   @backup.lst你可以在命令行中同时指定普通的文件名和列表文件名。   
  7.   解压路径 只与命令   e   和   x   ,搭配使用。指出解压文件添加的位置。如果文件夹不存在时,会自动创建。   
  8.   注意事项   
  9.   a)   如果未指定   文件   或是   列表文件   时,WinRAR   将会以缺省的   *.*   运行全部的文件;   
  10.   b)   如果未指定压缩文件扩展名时,WinRAR   将会使用在   压缩配置   中选定的默认压缩文件格式。但你可以指定   .RAR   或   .ZIP   扩展名来替换它们;   
  11.   c)   在命令行所输入的开关会替换相同的配置设置值;   
  12.   d)   在命令   c、e、s、t、rr、k   和   x   可在压缩文件名中使用通配符。如此可以用单个的命令来进行超过一个以上的压缩文件,除此之外,如果你指定   -r   开关于这些命令时,它们将会搜索在子文件夹中的压缩文件;   
  13.    
  14.   e)   某些命令和开关只应用在   RAR   压缩文件,有些则在   RAR   和   ZIP   都可使用,而某些则可应用在全部的压缩文件格式。这一些都得看压缩文件格式所提供的特性而定;   
  15.   f)   命令和开关的大小写是相同意思的,你可以用大写或者小写来下命令均可。

  16. 压缩文件命令:

  17. "c:\Program Files\WinRAR\Rar.exe" a -k -r -s -m1 d:\web.rar d:\web\

  18. 解压文件命令:

  19. "c:\Program Files\WinRAR\Rar.exe" x -t -o-p d:\web.rar d:\web\
复制代码
使用C#执行的话也很简单看下面文章就知道了
http://www.sufeinet.com/forum.php?mod=viewthread&tid=2177
大致如下
[code=csharp] private Process proc =  new Process();
        /// <summary>
        /// 执行CMD语句
        /// </summary>
        /// <param name="cmd">要执行的CMD命令</param>
        public string RunCmd(string cmd)
        {
            proc.StartInfo.CreateNoWindow = true;
            proc.StartInfo.FileName = "cmd.exe";
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.RedirectStandardError = true;
            proc.StartInfo.RedirectStandardInput = true;
            proc.StartInfo.RedirectStandardOutput = true;
            proc.Start();
            proc.StandardInput.WriteLine(cmd);
            proc.StandardInput.WriteLine("exit");
            string outStr = proc.StandardOutput.ReadToEnd();
            proc.Close();
            return outStr;
        }[/code]



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2013-4-16 13:35:58 | 显示全部楼层
  1. 用法:     rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件...>
  2.                <@列表文件...> <解压路径\>

  3. <命令>
  4.   a             添加文件到压缩文件
  5.   c             添加压缩文件注释
  6.   cf            添加文件注释
  7.   ch            改变压缩文件参数
  8.   cw            写入压缩文件注释到文件
  9.   d             删除压缩文件中的文件
  10.   e             解压压缩文件到当前目录
  11.   f             刷新压缩文件中的文件
  12.   i[参数]=<串>  在压缩文件中查找字符串
  13.   k             锁定压缩文件
  14.   l[t,b]        列出压缩文件[技术信息,简洁]
  15.   m[f]          移动到压缩文件[仅对文件]
  16.   p             打印文件到标准输出设备
  17.   r             修复压缩文件
  18.   rc            重建丢失的卷
  19.   rn            重命名压缩文件
  20.   rr[N]         添加数据恢复记录
  21.   rv[N]         创建恢复卷
  22.   s[名字|-]     转换压缩文件为自解压格式或转换回压缩文件
  23.   t             测试压缩文件
  24.   u             更新压缩文件中的文件
  25.   v[t,b]        详细列出压缩文件[技术信息,简洁]
  26.   x             用绝对路径解压文件

  27. <开关>
  28.   -             停止扫描
  29.   ac            压缩或解压后清除存档属性
  30.   ad            添加压缩文件名到目标路径
  31.   ag[格式]      使用当前日期生成压缩文件名
  32.   ao            添加具有压缩属性的文件
  33.   ap<格式>      添加路径到压缩文件中
  34.   as            同步压缩文件内容
  35.   av            添加用户身份校验(仅注册版本可用)
  36.   av-           禁用用户身份校验
  37.   c-            禁用注释显示
  38.   cfg-          禁用读取配置
  39.   cl            名称转换为小写
  40.   cu            名称转换为大写
  41.   df            压缩后删除文件
  42.   dh            打开共享文件
  43.   dr            删除文件到回收站
  44.   ds            对固实压缩文件禁用名称排序
  45.   dw            压缩后清除文件
  46.   e[+]<属性>    设置文件排除和包括属性
  47.   ed            不添加空目录
  48.   en            不添加"压缩文件结束"标志
  49.   ep            从名称中排除路径
  50.   ep1           从名称中排除基本目录
  51.   ep2           展开为完整路径
  52.   ep3           扩展路径为包含盘符的完全路径
  53.   f             刷新文件
  54.   hp[密码]      同时加密文件数据和文件头
  55.   id[c,d,p,q]   禁用消息
  56.   ieml[属性]    用 E-mail 发送压缩文件
  57.   ierr          发送所有消息到标准错误设备
  58.   ilog[名称]    把错误写到日志文件(只有注册版本可用)
  59.   inul          禁用所有消息
  60.   ioff          完成一个操作后关闭 PC 电源
  61.   isnd          启用声音
  62.   k             锁定压缩文件
  63.   kb            保留损坏的已解压文件
  64.   m<0..5>       设置压缩级别(0-存储...3-默认...5-最大)
  65.   mc<参数>      设置高级压缩参数
  66.   md<大小>      以KB为单位的字典大小(64,128,256,512,1024,2048,4096 or A-G)
  67.   ms[ext;ext]   指定存储的文件类型
  68.   mt<线程>      设置线程数
  69.   n<文件>       仅包含指定的文件
  70.   n@            从标准输入设备读取文件名到包括
  71.   n@<列表>      在指定的文件列表包括文件
  72.   o[+|-]        设置覆盖模式
  73.   oc            设置 NTFS 压缩属性
  74.   or            自动重命名文件
  75.   os            保存 NTFS 流
  76.   ow            保存或恢复文件所有者和组
  77.   p[密码]       设置密码
  78.   p-            不询问密码
  79.   r             递归子目录
  80.   r0            仅递归通配符名称的子目录
  81.   ri<P>[:<S>]   设置优先级(0-默认,1-最小..15-最大)和以毫秒为单位的休眠时间
  82.   rr[N]         添加数据恢复记录
  83.   rv[N]         创建恢复卷
  84.   s[<N>,v[-],e] 创建固实压缩文件
  85.   s-            禁用固实压缩文件
  86.   sc<chr>[obj]  指定字符集
  87.   sfx[名称]     创建自解压压缩文件
  88.   st[名称]      从标准输入设备读取数据(stdin)
  89.   sl<大小>      处理小于指定大小的文件
  90.   sm<大小>      处理超过指定大小的文件
  91.   t             压缩后测试文件
  92.   ta<日期>      添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS
  93.   tb<日期>      添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS
  94.   tk            保留原始压缩文件时间
  95.   tl            设置压缩文件时间为最新文件时间
  96.   tn<时间>      添加 <时间> 以后的文件
  97.   to<时间>      添加 <时间> 以前的文件
  98.   ts<m,c,a>[N]  保存或恢复文件时间(修改,创建,访问)
  99.   u             更新文件
  100.   v             自动检测创建卷的大小或者列出所有的卷
  101.   v<大小>[k,b]  创建卷大小=<大小>*1000 [*1024, *1]
  102.   vd            创建容量前清除磁盘内容
  103.   ver[n]        文件版本控制
  104.   vn            使用旧风格的卷命名方案
  105.   vp            每卷之前暂停
  106.   w<路径>       指定工作目录
  107.   x<文件>       排除指定的文件
  108.   x@            从标准输入设备读取要排除的文件名
  109.   x@<列表>      排除指定列表文件中的文件
  110.   y             假设对全部询问都回答是
  111.   z[文件]       从文件读取压缩文件注释
复制代码
 楼主| 发表于 2013-4-16 13:38:51 | 显示全部楼层
  1. 用CMD命令解压缩文件rar
  2. WinRAR <命令> -<开关1> -<开关N> <压缩文件> <文件...> <@列表文件...> <解压路径\>
  3. 命令 E - 从压缩文件解压压缩,忽略路径
  4. 命令 X - 以完整路径名称从压缩文件解压压缩
  5. 开关 -O[+|-] - 设置覆盖模式
  6. 这个开关可以在解压和更新压缩文件时使用。下列模式可用:
  7. -o     覆盖前询问(解压文件时默认)
  8. -o+  覆盖所有(更新压缩文件时默认);
  9. -o-   跳过已存在的文件。


  10. 系统自带CMD本身不支持rar的,你把你winrar目录里面的RAR.exe和UNRAR复制到c:\windows文件夹中,或者自己设置一下系统环境变量,把winrar的目录加进去。其实就是方便调用而已。

  11. RAR.exe         负责的功能是压缩文件
  12. UnRAR.exe     负责的功能则是解压缩文件

  13. 实例一下,
  14. 假设,D:\abc文件夹下有个a.rar文件
  15. 你要把a文件解压到当前目录
  16. 你就在命令行里输入命令,unrar x(注释,命令x为使用绝对路径)D:\abc\a.rar(注释,这是你要解压的文件的绝对路径) D:\(注释,这个是你想解压的路径,如果留空则默认解压到%HOMEPATH%目录)
  17. 如果你不想用绝对路径解压,在cmd中跳转到,rar文件的目录下,改用命令e,
  18. 继续以D:\abc文件夹下有个a.rar文件为例,你到了abc的目录下输入,unrar e a.rar(注释,这里用相对路径)D:\(注释这里依然是你想解压到得目录,但留空则解压到当前目录)

  19. 其次,rar文件有密码,则加上开关-p[]
  20. 例unrar e -p[abc] a.rar d:\
  21. 举一反三,解压中其他需求就加上它预设的开关就是了,压缩也是如此

  22. 例子:
  23. 在当前文件夹,从全部的 RAR 压缩文件解压所有的 *.doc 文件到当前文件夹
  24. WinRAR e *.rar *.doc


  25. > 在cmd下解压rar文件
  26. start winrar e c:\abc.rar
  27. 就可以了,不管你winrar装在哪里


  28. > bat文件
  29. @echo off&color a
  30. set rarpath=请将你要解压的压缩包拖放到这里:
  31. for /f "delims==" %%a in ('ftype|find "WinRAR"') do set rar=%%a
  32. set rar=%rar: "%1"=%
  33. %rar% x %rarpath%

  34. 将上述的代码用记事本保存为bat文件,双击执行,会将压缩包文件解压到bat文件所在的文件夹下;
  35. 本程序核心是依据ftype定位WinRAR.exe文件的所在位置,你可以依据你的实际需要把它改成函数。


  36. 本人用到的一句代码unrar x -x@sa.txt *.rar *.txt sa\ 意思是把本目录下的所有RAR文件解压规则是排除掉sa.txt中记录的文件后所有的txt文件解压到sa目录下,这里用x解压到指定目录会连带压缩包里的目录结构一起解压,而用e解压到本目录就不会产生子文件夹,而是一堆文件
复制代码
 楼主| 发表于 2013-4-16 14:36:13 | 显示全部楼层
%RARLINE% a -k -m1 -r -h -s -idq -x%0 D:\sqlback\back.rar *.*
这一行加一个 -ibck 开关,在后台运行 WinRAR
当开始压缩或是解压操作时,将 WinRAR 最小化放到任务栏指示区。

@Echo off
:: +-----------------------------------------------+ ::
:: |  BAT-GO团员【wkdxz】  At:2010-07-20 12:46:13  | ::
:: +-----------------------------------------------+ ::
SET RARLINE="%ProgramFiles%\WinRAR\Winrar.exe"
%RARLINE% a -ibck -k -m1 -r -h -s -idq -x%0 D:\sqlback\back.rar *.*
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-19 11:03

© 2014-2021

快速回复 返回顶部 返回列表