从 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'

相关内容