從 RAR 存檔中提取匹配模式的文件

從 RAR 存檔中提取匹配模式的文件

我有一個 RAR 存檔,我想提取所有以三位數作為擴展名的檔案。我嘗試使用 Winrar 但它不接受正規表示式:

winrar.exe e -y pinetinf pinet.[0-9*] .      // pattern: does not work
winrar.exe e -y pinetinf pinet.222 .         // single file name: WORK

如何提取所有擴展名為三位數的檔案?

答案1

僅使用 WinRAR 無法做到這一點,但您可以呼叫 Powershell 來幫助您進行篩選。

列出存檔中的文件,並將輸出透過管道傳輸到 for 循環,以在 Powershell 控制台中提取所需的文件。

& 'UnRAR.exe' 'lb' '.\file.rar' | ForEach-Object { If($_ -like '*.[0-9][0-9][0-9]') { & 'UnRAR.exe' 'e' '.\file.rar' $_ } }

或者,您可以建立一個清單檔案並只執行一次 unrar.exe 來提取檔案(如果您有大量文件,這樣做可能會更快一些)。

& 'UnRAR.exe' 'lb' '.\file.rar' | ForEach-Object { If($_ -like '*.[0-9][0-9][0-9]') { Out-File '.\files.list' -InputObject $_ -Append } } | & 'UnRAR.exe' 'e' '.\file.rar' '-n@.\files.list'

相關內容