作者logs ( )
看板EzHotKey
标题Re: [批次] 解压缩到原有档案目录
时间Wed Aug 5 01:19:00 2015
修正: WinRAR 可以直接指定解压缩位置,do 的内容就不用两行
新增: -INUL 略过错误讯息,这样 WinRAR 就不会因为错误讯息停止
-ILOG 输出错误讯息,以 append 方式写入,不会被重复覆写只留下最後错误
^^^^^ (须购买正式版本才有)
rar 指令/开关可以放到 set 变数中
@echo off
set rar="D:\Winrar\Winrar.exe" x
-INUL -ILOGD:\ErrLog.txt -ibck -o+ -p2119
for /R %%I in (*.rar) do %rar%
"%%I" "%%~dpI"
pause
PS: 不确定是否有必要再加上
双引号 "" 来避免档案及路径的空格问题,请斟酌测试
Win 版本比较好 (记得遇过档名问题,但可能早已修正了)
ibck --> run in background
※ 引述《iamgodisme (miles)》之铭言:
: 最近小弟在备帮家人分硬碟中资料
: 因为资档案量有点大 所以打算一次压缩跑完
: 但是目前小弟只能写到 让一个目录底下的全部rar档解压缩
: 没办法在让他自动往下继续做 并且解压缩到同个资料夹
: 简单来说就是解压缩档案到原本档案的目录下就好
: 刚刚改良了一下 可以做到让目录下(包含子目录内)的全部rar档解压缩到
: 当前执行.bat位置 但是这不我需要的
: 举例说明:A(B(b.rar)C(c.rar D(d.rar)))理想是变成A(B(b)C(c D(d)))
: 就解压到原本的目录下就好 我改良後的变成A(b c d B C(D))全部都跑到A层了..
: ----------------------------------------------------
: @echo off
: set rar="D:\Winrar\Rar.exe"
: for /R %%f in (*.rar) do %rar% x -o+ -p2119 %%f
: pause
: -----------------------------------------------------
: 以上是我的程式码
: 希望有大大可以解惑 小弟感激不尽!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.171.163.24
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/EzHotKey/M.1438708743.A.18B.html
※ 编辑: logs (118.171.163.24), 08/05/2015 01:28:04
1F:推 iamgodisme: 再次感谢大大 但是我跑完後下层的压缩档好像还是会跑 08/05 01:57
2F:→ iamgodisme: 上来 但是下层会有原本的解压缩好的!就上层会多一个xD 08/05 01:57
已修改,再看看有无问题
原先的方式没有应对到一个目录会有多个 rar 变成重复解压缩
3F:→ iamgodisme: A(B(b.rar))--变成-->A(b B(b))这样 08/05 01:58
4F:推 iamgodisme: 找到问题了! 把第二个/R 拿掉就可以了! 08/05 02:01
5F:推 iamgodisme: 再问大大一个问题 有没有方法可以绕过坏档 08/05 02:05
用 -INUL switch 避免停住
6F:→ iamgodisme: 就是假如无法解压缩 就直接跳过去做下一笔 而不是停住 08/05 02:05
7F:→ iamgodisme: 加个if判断句 但是不知道内容要怎麽用batch表示 08/05 02:06
8F:→ iamgodisme: exist好像不是这样用 因为要判断坏档或错误 08/05 02:08
9F:推 iamgodisme: 刚查了一下 好像可以用python的function去判断 08/05 02:20
10F:→ iamgodisme: 还是非常谢谢大大的回应 帮助很多! 08/05 02:21
※ 编辑: logs (118.171.163.24), 08/05/2015 03:28:43
※ 编辑: logs (118.171.163.24), 08/05/2015 03:48:57
11F:推 iamgodisme: 没问题了! 对新手我写batch而言真的学到超多!大感谢! 08/05 04:31