使用 WinRAR 批次解壓縮檔案

之前有個網友問說,要怎麼樣批次解壓縮某個目錄下的壓縮檔
所以就有這篇文章出現了。使用前請先確定你有裝winrar~
如果不是裝在預設路徑的話,要修改WINRAR_PATH這個參數

@ECHO OFF
REM AFTER_UNRAR_DELETE_FILE=YES 解壓後刪除原始的壓縮檔
REM AFTER_UNRAR_DELETE_FILE=NO 解壓後保留原始的壓縮檔

REM 在此設定要不要刪原始檔(大小寫有分別)
SET AFTER_UNRAR_DELETE_FILE=NO
REM 在此設定WINRAR的路徑
SET WINRAR_PATH=C:\PROGRA~1\WinRAR\WinRAR.exe

FOR %%F IN (*.rar) DO (
ECHO "解壓 %%F..."
MKDIR "Unrar_%%F"
%WINRAR_PATH% x "%%F" * "Unrar_%%F"IF %AFTER_UNRAR_DELETE_FILE%==YES (Del "%%F")
)


延伸閱讀:WinRAR於指令模式自動化壓縮

評論 (4) -

  • 加上-p的參數,詳細可以參考下面的參數說明

    UNRAR 4.00 自由軟體      Copyright (c) 1993-2011 Alexander Roshal

    使用方法:  unrar  - -  
                    


      e             從壓縮檔解壓縮並忽略路徑
      l[t,b]        列出壓縮檔 [技術性的, 簡易式]
      p             列印檔案到 stdout
      t             測試壓縮的檔案
      v[t,b]        冗長式的壓縮檔內容清單 [技術性的, 簡易式]
      x             從壓縮檔解壓縮並使用完整路徑


      -             停止開關掃描
      ac            壓縮或解壓縮後清除「保存」屬性
      ad            附加壓縮檔名至目的地資料夾
      ai            忽略檔案屬性
      ap      在壓縮檔內設定路徑
      av-           停用加入憑證驗證
      c-            停用註解顯示
      cfg-          停用環境變數讀取
      cl            轉換檔名成小寫
      cu            轉換檔名成大寫
      dh            開啟共享的檔案
      ep            排除檔名的路徑
      ep3           展開路徑成完整路徑,包含磁碟機代號
      f             重新整理檔案
      id[c language=",d,p,q"][/c]   停用訊息
      ierr          傳送所有的錯誤到 stderr
      inul          停用錯誤訊息
      ioff          操作完畢關閉電腦
      kb            保留解壓縮不完整的檔案
      n       只包含指定的檔案
      n@            從 stdin 讀取要包含的檔名
      n@      包含指定清單檔之中的檔案
      o[+|-]        設定覆寫模式
      oc            設定 NTFS 「壓縮」屬性
      or            自動重新命名檔案
      ow            儲存或還原檔案所有人或群組
      p[密碼]       設定密碼
      p-            不要詢問密碼
      r             遞迴子資料夾
      ri[:]   設定優先權 (0-預設,1-最小..15-最大) 及停頓時間 (微秒)
      sl      處理比指定還小的檔案
      sm      處理比指定還大的檔案
      ta      處理指定日期之後修改的檔案
      tb      處理指定日期之前修改的檔案
      tn      處理比指定時間還新的檔案>
      to      處理比指定時間還舊的檔案>
      ts[N]  儲存或恢復檔案時間 (修改的日期、建立時間、存取時間)
      u             更新檔案
      v             列出所有分割檔
      ver[n]        檔案版本控制項
      vp            每個分割檔案進行前先暫停
      x       排除指定的檔案
      x@            從 stdin 讀取要排除的檔名
      x@      排除指定清單檔之中的檔案
      y             所有問題的預設值為「是」
  • 請問p[密碼]指令要加在哪段?試了一陣子還是不知道該放哪,煩請解答,感謝
    • 假設要解壓的檔是aa.rar,密碼是 123 的話,範例:unrar.exe x aa.rar -p123

      補上新版的使用說明如下:

      UNRAR 5.11 自由軟體      Copyright (c) 1993-2014 Alexander Roshal

      使用方法:  unrar <指令> -<開關 1> -<開關 N> <壓縮檔> <檔案...>
                     <@檔案清單...> <解壓縮路徑\>

      <指令>
        e            從壓縮檔解壓縮並忽略路徑
        l[t[a],b]     列出壓縮檔內容 [技術性[詳細資料], 精簡資料]
        p             列印檔案到 stdout
        t             測試壓縮的檔案
        v[t[a],b]     冗長式的壓縮檔內容清單 [技術性[詳細資料], 精簡資料]
        x             從壓縮檔解壓縮並使用完整路徑

      <開關>
        -             停止開關掃描
        @[+]          停用 [啟用] 檔案清單
        ac            壓縮或解壓縮後清除「保存」屬性
        ad            附加壓縮檔名至目的地路徑
        ag[格式]      使用目前的日期時間產生壓縮檔名
        ai            忽略檔案屬性
        ap<路徑>      在壓縮檔內設定路徑
        c-            停用註解顯示
        cfg-          停用環境變數讀取
        cl            轉換檔名成小寫
        cu            轉換檔名成大寫
        dh            開啟共享的檔案
        ep            排除檔名的路徑
        ep3           展開路徑成完整路徑,包含磁碟機代號
        f             重新整理檔案
        id[c,d,p,q]   停用訊息
        ierr          傳送所有的錯誤到 stderr
        inul          停用錯誤訊息
        ioff          操作完畢關閉電腦
        kb            保留解壓縮不完整的檔案
        n<檔案>       進階篩選的檔案
        n@            從 stdin 讀取進階篩選遮罩
        n@<清單>      從清單檔案讀取進階篩選遮罩
        o[+|-]        設定覆寫模式
        oc            設定 NTFS 「壓縮」屬性
        or            自動重新命名檔案
        ow            儲存或還原檔案所有人或群組
        p[密碼]       設定密碼
        p-            不要詢問密碼
        r             遞迴子資料夾
        ri<p>[:<s>]   設定優先權 (0-預設,1-最小..15-最大) 及停頓時間 (微秒)
        sc<字元集>[物件]指定字元集
        sl<大小>      處理比指定還小的檔案
        sm<大小>      處理比指定還大的檔案
        ta<日期>      處理指定日期之後修改的檔案
        tb<日期>      處理指定日期之前修改的檔案
        tn<時間>      處理比指定時間還新的檔案>
        to<時間>      處理比指定時間還舊的檔案>
        ts<m,c,a>[N]  儲存或恢復檔案時間 (修改的日期、建立時間、存取時間)
        u             更新檔案
        v             列出所有分割檔
        ver[n]        檔案版本控制項
        vp            每個分割檔案進行前先暫停
        x<檔案>       排除指定的檔案
        x@            從 stdin 讀取要排除的檔名
        x@<清單>      排除指定清單檔之中的檔案
        y             所有問題的預設值為「是」

新增評論

Loading