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'

관련 정보