作者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/m.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