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

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'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .