RAR アーカイブからパターンに一致するファイルを抽出します

RAR アーカイブからパターンに一致するファイルを抽出します

RAR アーカイブがあり、拡張子が 3 桁の数字であるすべてのファイルを抽出したいと考えています。Winrar で試してみましたが、正規表現が受け入れられません。

winrar.exe e -y pinetinf pinet.[0-9*] .      // pattern: does not work
winrar.exe e -y pinetinf pinet.222 .         // single file name: WORK

名前に 3 桁の拡張子を持つすべてのファイルを抽出するにはどうすればよいですか?

答え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 を 1 回だけ実行してファイルを抽出することもできます (ファイルが大量にある場合は、この方法の方が少し速くなる可能性があります)。

& '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'

関連情報