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

371
user2993079

Ich habe ein RAR-Archiv und möchte alle Dateien mit einer dreistelligen Nummer als Erweiterung extrahieren. Ich habe es mit Winrar versucht, aber es wird keine REGular-Expression akzeptiert:

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?

0
Ich fürchte, du kannst nicht. Toto vor 6 Jahren 0
Ich denke, Sie können die "list" -Option von "rar" verwenden (oder Sie können 7-zip verwenden, um Dateien aus rar zu extrahieren) und dann das Ergebnis mit einem Filter umgehen (ein externes Tool, das Dateinamen extrahiert, die Sie ohne PITA benötigen) und dann extrahieren Dateien, die die Include-Optionen des Archivierers zusammen mit der Extraktionsoption verwenden. Alex vor 6 Jahren 0

1 Antwort auf die Frage

0
bcs78

Mit WinRAR ist dies nicht möglich. Sie können jedoch Powershell anrufen, um Sie beim Filtern zu unterstützen.

Listen Sie die Dateien aus dem Archiv auf und leiten Sie die Ausgabe in eine for-Schleife, um die benötigten 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 (vielleicht ist es etwas schneller, wenn Sie Dateien laden).

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