用UnRAR命令查看RAR文件恢復(fù)記錄

需求:
WinRAR可以為RAR/RAR5文件配置最多10%的恢復(fù)記錄:


以及查看這些記錄的大?。?br>

但是WinRAR是圖形界面商業(yè)軟件?,F(xiàn)需要通過(guò)腳本對(duì)一棵目錄樹(shù)下的大量RAR文件做批量檢查,希望實(shí)現(xiàn):

  • 字符界面或者命令返回值(exit code,%ERRORLEVEL%,$?中讀取檢查結(jié)果,
  • 同時(shí)盡量避免使用RAR.exe,而是使用UnRAR.exe完成任務(wù),因?yàn)楹笳呤?em>免費(fèi)軟件,遵循相對(duì)寬松的UnRAR license

RAR.exe、UnRAR.exe、7z.exe/7za.eze等用于壓縮/解壓縮的命令行工具的用法均與舊式選項(xiàng)風(fēng)格tar類似,即:
EXECUTABLE command [-option [-option ...]] input_file
其中command前不加-號(hào),且普遍為1個(gè)字母。

功能 RAR.exe UnRAR.exe 7z.exe tar[1]
添加文件到壓縮包/tar包 a a -r, --append
創(chuàng)建(create)tar包文件 -c
從壓縮包中刪除文件 d d --delete
解壓縮文件(不包含路徑) e e e
列出壓縮包的內(nèi)容 l l l -t, --test
測(cè)試壓縮包 t t t [2]
更新壓縮包內(nèi)的指定文件 u u -u, --update
詳細(xì)列出壓縮包的內(nèi)容 v v
解壓縮文件(包含完整路徑) x x x -x, --extract, --get
設(shè)置恢復(fù)記錄(recovery record)在壓縮包中的比例為N% rr[N]
設(shè)置恢復(fù)卷(recovery volume)的數(shù)量為N個(gè) rv[N]

[1] tar-c, -r, -t, -u, -x命令都需要通過(guò)-f指定tar包文件,而另外三個(gè)命令會(huì)自動(dòng)選擇input_file中的第一項(xiàng)作為要操作的壓縮包文件。
[2] 測(cè)試tar包完整性的方法有至少三種,參考:鏈接

  • 嘗試列出文件,但不關(guān)心列出的文件,只看命令是否出錯(cuò):tar -t -f file &> /dev/null; echo $?
  • 嘗試解開(kāi)tar包,同樣不關(guān)心解出的內(nèi)容,只看命令是否出錯(cuò):tar -x --to-stdout -f file &> /dev/null; echo $?
  • 絕大多數(shù)tar包都會(huì)借助其他程序進(jìn)行壓縮(.gz, .bz2, .xz, .lzma等),嘗試解壓縮。由于tar包本身不包含校驗(yàn)信息,因而我認(rèn)為這種方法是最不壞的方法。

回到正題:
RAR.exeUnRAR.exelv選項(xiàng)可以分別改寫(xiě)為l[t[a]|b], v[t[a]|b],其中:

  • t(technical)表示技術(shù)列表(每個(gè)文件若干個(gè)鍵值對(duì),每個(gè)鍵值對(duì)占一行)
  • ta(technical, all)表示完整的技術(shù)列表(包含服務(wù))
  • b(bare)表示只列出文件名,類似于dir /bvb兩個(gè)選項(xiàng)是矛盾的,效果與lb相同。
  • 默認(rèn)情況下,l/v選項(xiàng)以表格的形式列出壓縮包內(nèi)的文件

而這次要查看的恢復(fù)記錄就屬于RAR壓縮包內(nèi)的“服務(wù)”,通過(guò)unrar.exe l[b] input_file完全看不到:

C:\Program Files\WinRAR>UnRAR.exe l J:\3dm\3DMGAME-Age.of.Empires.II.Definitive.
Edition-CODEX\3DMGAME-Age.of.Empires.II.Definitive.Edition-CODEX.part01.rar

UNRAR 5.71 x64 免費(fèi)軟件      版權(quán)所有 (C) 1993-2019 Alexander Roshal

壓縮文件: J:\3dm\3DMGAME-Age.of.Empires.II.Definitive.Edition-CODEX\3DMGAME-Age.
of.Empires.II.Definitive.Edition-CODEX.part01.rar
詳情: RAR 4, 卷, 恢復(fù)記錄

 屬性      大小     日期    時(shí)間   名稱
----------- ---------  ---------- -----  ----
    ..A.... 250000000  2019-11-14 17:51  codex-age.of.empires.ii.definitive.edit
ion.rar
    ..A.... 250000000  2019-11-14 17:51  codex-age.of.empires.ii.definitive.edit
ion.s00
    ..A.... 250000000  2019-11-14 17:51  codex-age.of.empires.ii.definitive.edit
ion.s01
    ..A.... 250000000  2019-11-14 17:51  codex-age.of.empires.ii.definitive.edit
ion.s02
    ..A.... 250000000  2019-11-14 17:51  codex-age.of.empires.ii.definitive.edit
ion.s03
----------- ---------  ---------- -----  ----
           1250000000  卷 1               5
C:\Program Files\WinRAR>UnRAR.exe lb J:\3dm\3DMGAME-Age.of.Empires.II.Definitive
.Edition-CODEX\3DMGAME-Age.of.Empires.II.Definitive.Edition-CODEX.part01.rar
codex-age.of.empires.ii.definitive.edition.rar
codex-age.of.empires.ii.definitive.edition.s00
codex-age.of.empires.ii.definitive.edition.s01
codex-age.of.empires.ii.definitive.edition.s02
codex-age.of.empires.ii.definitive.edition.s03

通過(guò)unrar.exe lt input_file只能看到其有無(wú):

C:\Program Files\WinRAR>UnRAR.exe lt J:\3dm\3DMGAME-Age.of.Empires.II.Definitive
.Edition-CODEX\3DMGAME-Age.of.Empires.II.Definitive.Edition-CODEX.part01.rar

UNRAR 5.71 x64 免費(fèi)軟件      版權(quán)所有 (C) 1993-2019 Alexander Roshal

壓縮文件: J:\3dm\3DMGAME-Age.of.Empires.II.Definitive.Edition-CODEX\3DMGAME-Age.
of.Empires.II.Definitive.Edition-CODEX.part01.rar
詳情: RAR 4, 卷, 恢復(fù)記錄

          名稱: codex-age.of.empires.ii.definitive.edition.rar
          類型: 文件
          大小: 250000000
       壓縮后大小: 250000000
          比率: 100%
       mtime: 2019-11-14 17:51:13,000000000
          屬性: ..A....
       CRC32: B399169C
       主機(jī) OS: Windows
          壓縮: RAR 3.0(v20) -m0 -md=128K

          名稱: codex-age.of.empires.ii.definitive.edition.s00
          類型: 文件
          大小: 250000000
       壓縮后大小: 250000000
          比率: 100%
       mtime: 2019-11-14 17:51:16,000000000
          屬性: ..A....
       CRC32: 68F91F54
       主機(jī) OS: Windows
          壓縮: RAR 3.0(v20) -m0 -md=128K

          名稱: codex-age.of.empires.ii.definitive.edition.s01
          類型: 文件
          大小: 250000000
       壓縮后大小: 250000000
          比率: 100%
       mtime: 2019-11-14 17:51:18,000000000
          屬性: ..A....
       CRC32: FE27D5DC
       主機(jī) OS: Windows
          壓縮: RAR 3.0(v20) -m0 -md=128K

          名稱: codex-age.of.empires.ii.definitive.edition.s02
          類型: 文件
          大小: 250000000
       壓縮后大小: 250000000
          比率: 100%
       mtime: 2019-11-14 17:51:20,000000000
          屬性: ..A....
       CRC32: DFB8EABB
       主機(jī) OS: Windows
          壓縮: RAR 3.0(v20) -m0 -md=128K

          名稱: codex-age.of.empires.ii.definitive.edition.s03
          類型: 文件
          大小: 250000000
       壓縮后大小: 18126500
          比率: -->
       mtime: 2019-11-14 17:51:24,000000000
          屬性: ..A....
  Pack-CRC32: EF4773F2
       主機(jī) OS: Windows
          壓縮: RAR 3.0(v20) -m0 -md=128K

而通過(guò)unrar.exe lta input_file則可以看到它的大?。ㄗ止?jié)數(shù))等信息:

C:\Program Files\WinRAR>UnRAR.exe lta J:\3dm\3DMGAME-Age.of.Empires.II.Definitiv
e.Edition-CODEX\3DMGAME-Age.of.Empires.II.Definitive.Edition-CODEX.part01.rar

UNRAR 5.71 x64 免費(fèi)軟件      版權(quán)所有 (C) 1993-2019 Alexander Roshal

壓縮文件: J:\3dm\3DMGAME-Age.of.Empires.II.Definitive.Edition-CODEX\3DMGAME-Age.
of.Empires.II.Definitive.Edition-CODEX.part01.rar
詳情: RAR 4, 卷, 恢復(fù)記錄

          名稱: codex-age.of.empires.ii.definitive.edition.rar
          類型: 文件
          大小: 250000000
       壓縮后大小: 250000000
          比率: 100%
       mtime: 2019-11-14 17:51:13,000000000
          屬性: ..A....
       CRC32: B399169C
       主機(jī) OS: Windows
          壓縮: RAR 3.0(v20) -m0 -md=128K

          名稱: codex-age.of.empires.ii.definitive.edition.s00
          類型: 文件
          大小: 250000000
       壓縮后大小: 250000000
          比率: 100%
       mtime: 2019-11-14 17:51:16,000000000
          屬性: ..A....
       CRC32: 68F91F54
       主機(jī) OS: Windows
          壓縮: RAR 3.0(v20) -m0 -md=128K

          名稱: codex-age.of.empires.ii.definitive.edition.s01
          類型: 文件
          大小: 250000000
       壓縮后大小: 250000000
          比率: 100%
       mtime: 2019-11-14 17:51:18,000000000
          屬性: ..A....
       CRC32: FE27D5DC
       主機(jī) OS: Windows
          壓縮: RAR 3.0(v20) -m0 -md=128K

          名稱: codex-age.of.empires.ii.definitive.edition.s02
          類型: 文件
          大小: 250000000
       壓縮后大小: 250000000
          比率: 100%
       mtime: 2019-11-14 17:51:20,000000000
          屬性: ..A....
       CRC32: DFB8EABB
       主機(jī) OS: Windows
          壓縮: RAR 3.0(v20) -m0 -md=128K

          名稱: codex-age.of.empires.ii.definitive.edition.s03
          類型: 文件
          大小: 250000000
       壓縮后大小: 18126500
          比率: -->
       mtime: 2019-11-14 17:51:24,000000000
          屬性: ..A....
  Pack-CRC32: EF4773F2
       主機(jī) OS: Windows
          壓縮: RAR 3.0(v20) -m0 -md=128K

          名稱: RR
          類型: 服務(wù)
          大小: 30448996
       壓縮后大小: 30448996
          比率: 100%
       mtime: 2019-11-14 10:32:34,000000000
          屬性: .B
       CRC32: F1930F9B
       主機(jī) OS: Windows
          壓縮: RAR 3.0(v29) -m0 -md=64K

          服務(wù): EOF
          旗幟: 卷 1

倒數(shù)第二項(xiàng)(名稱: RR,大小: 30448996)就是我們需要的信息了。

下一步:
libarchive鏈接)及其Python調(diào)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容