[批次] 解壓縮到原有檔案目錄

看板EzHotKey作者 (miles)時間9年前 (2015/08/03 17:50), 編輯推噓5(5013)
留言18則, 2人參與, 最新討論串1/2 (看更多)
最近小弟在備幫家人分硬碟中資料 因為資檔案量有點大 所以打算一次壓縮跑完 但是目前小弟只能寫到 讓一個目錄底下的全部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://www.ptt.cc/bbs/EzHotKey/M.1438595452.A.F7F.html

08/04 22:53, , 1F
看不太懂你的括弧代表什麼意思?有待其他高手出招
08/04 22:53, 1F

08/04 22:53, , 2F
誠心建議要弄複雜的備份方案,還是用專門的程式
08/04 22:53, 2F

08/04 22:56, , 3F
08/04 22:56, 3F

08/04 22:57, , 4F
不過我覺得你的疑問應該是 rar cmd line 的用法
08/04 22:57, 4F

08/04 22:59, , 5F
在壓縮的時候,要使用 -ep2 甚至 -ep3 來包含完整路徑
08/04 22:59, 5F

08/04 23:08, , 6F
想了一下,發現你可能需要加上 cd (change dir)
08/04 23:08, 6F

08/04 23:09, , 7F
先 cd 再 rar x
08/04 23:09, 7F

08/04 23:53, , 8F
感謝樓上大大回復 刮弧的意思是目錄A()=A目錄下
08/04 23:53, 8F

08/04 23:54, , 9F
A(B(b.rar))代表 A目錄下有B目錄 B目錄內有b.rar檔
08/04 23:54, 9F

08/04 23:56, , 10F
用CD的方式有想過 但是假如有100層就要CD 100行..
08/04 23:56, 10F

08/04 23:57, , 11F
所以想說有沒有配合演算法可以寫樹狀往下解壓縮的方法
08/04 23:57, 11F

08/05 00:52, , 12F
for /r 就是遞迴(Recursive)的意思 你需要解析路徑來 cd
08/05 00:52, 12F

08/05 00:54, , 13F
或許可以用 for 的 token 或 % 操作子(搭配延伸指令)
08/05 00:54, 13F

08/05 00:55, , 14F
但是太複雜,不如用簡便的 script 來完成:AHK、AutoIt、按精
08/05 00:55, 14F

08/05 00:57, , 15F
甚至 PowerShell、VBscript 都是不錯的方案
08/05 00:57, 15F

08/05 01:14, , 16F
謝謝大大 我在研究其他方式看看
08/05 01:14, 16F

08/05 01:17, , 17F
用 %~dpI 可解決
08/05 01:17, 17F

08/05 01:25, , 18F
比想像中簡單^^ 已確認此延伸指令至少 XP 開始就有支援了
08/05 01:25, 18F
文章代碼(AID): #1Llpbyz_ (EzHotKey)
文章代碼(AID): #1Llpbyz_ (EzHotKey)