我有一个 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'