从RAR存档中提取匹配模式的文件


0

我有一个RAR档案,我想提取所有带有三位数字作为扩展名的文件。我尝试使用Winrar,但它不接受REGular EXpression:

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

如何提取名称后缀为三位数的所有文件?


恐怕你做不到。
多托

我认为您可以使用list选项rar(或可以使用7-zip,也可以从rar中提取文件),然后将结果绕过某个过滤器(某些外部工具,无需PITA即可提取所需的文件名),然后include一起使用archiver的选项提取文件与提取选项。
亚历克斯(Alex)

Answers:


0

您不能仅使用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'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.