作者iamgodisme (miles)
看板EzHotKey
标题[批次] 解压缩到原有档案目录
时间Mon Aug 3 17:50:48 2015
最近小弟在备帮家人分硬碟中资料
因为资档案量有点大 所以打算一次压缩跑完
但是目前小弟只能写到 让一个目录底下的全部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), 来自: 98.118.249.119
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/EzHotKey/M.1438595452.A.F7F.html
1F:推 logs: 看不太懂你的括弧代表什麽意思?有待其他高手出招 08/04 22:53
2F:→ logs: 诚心建议要弄复杂的备份方案,还是用专门的程式 08/04 22:53
4F:→ logs: 不过我觉得你的疑问应该是 rar cmd line 的用法 08/04 22:57
5F:→ logs: 在压缩的时候,要使用 -ep2 甚至 -ep3 来包含完整路径 08/04 22:59
6F:推 logs: 想了一下,发现你可能需要加上 cd (change dir) 08/04 23:08
7F:→ logs: 先 cd 再 rar x 08/04 23:09
8F:→ iamgodisme: 感谢楼上大大回复 刮弧的意思是目录A()=A目录下 08/04 23:53
9F:→ iamgodisme: A(B(b.rar))代表 A目录下有B目录 B目录内有b.rar档 08/04 23:54
10F:→ iamgodisme: 用CD的方式有想过 但是假如有100层就要CD 100行.. 08/04 23:56
11F:→ iamgodisme: 所以想说有没有配合演算法可以写树状往下解压缩的方法 08/04 23:57
12F:推 logs: for /r 就是递回(Recursive)的意思 你需要解析路径来 cd 08/05 00:52
13F:→ logs: 或许可以用 for 的 token 或 % 操作子(搭配延伸指令) 08/05 00:54
14F:→ logs: 但是太复杂,不如用简便的 script 来完成:AHK、AutoIt、按精 08/05 00:55
15F:→ logs: 甚至 PowerShell、VBscript 都是不错的方案 08/05 00:57
16F:→ iamgodisme: 谢谢大大 我在研究其他方式看看 08/05 01:14
17F:推 logs: 用 %~dpI 可解决 08/05 01:17
18F:推 logs: 比想像中简单^^ 已确认此延伸指令至少 XP 开始就有支援了 08/05 01:25