Extrahieren Sie Dateien, die mit dem Muster übereinstimmen, aus dem RAR-Archiv

0

Ich habe ein RAR-Archiv, und ich möchte alle dateien mit einer dreistelligen nummer als erweiterung extrahieren. Ich habe es mit Winrar versucht, aber es akzeptiert keine regulären Ausdrücke:

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

Wie kann ich alle Dateien extrahieren, deren Namen eine dreistellige Erweiterung haben?

user2993079
quelle
Ich fürchte, du kannst nicht.
Toto
Ich denke, Sie können verwenden list Option von rar (oder Sie können 7-zip verwenden, mit dem Sie auch Dateien aus rar extrahieren können.) Umgehen Sie dann das Ergebnis zu einem Filter (ein externes Tool, das die Dateinamen extrahiert, die Sie ohne PITA benötigen) und extrahieren Sie die Dateien mit include Optionen des Archivierers zusammen mit der Option zum Auslesen.
Alex

Antworten:

0

Sie können dies nicht nur mit WinRAR tun, sondern Sie können Powershell anrufen, um Hilfe bei der Filterung zu erhalten.

Listen Sie die Dateien aus dem Archiv auf und leiten Sie die Ausgabe an eine for-Schleife, um die benötigten Dateien in einer Powershell-Konsole zu extrahieren.

& 'UnRAR.exe' 'lb' '.\file.rar' | ForEach-Object { If($_ -like '*.[0-9][0-9][0-9]') { & 'UnRAR.exe' 'e' '.\file.rar' $_ } }

Alternativ können Sie eine Listendatei erstellen und unrar.exe nur einmal ausführen, um die Dateien zu extrahieren.

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