У меня есть архив 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
Как извлечь все файлы, имена которых имеют трехзначное расширение?
решение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'