Извлечь файлы, соответствующие шаблону, из архива RAR

Извлечь файлы, соответствующие шаблону, из архива RAR

У меня есть архив 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'

Связанный контент