Ich habe ein RAR-Archiv und möchte alle Dateien mit einer dreistelligen Zahl 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?
Antwort1
Sie können dies nicht nur mit WinRAR tun, aber Sie können Powershell aufrufen, um sich beim Filtern helfen zu lassen.
Listen Sie die Dateien aus dem Archiv auf und leiten Sie die Ausgabe an eine For-Schleife weiter, 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 (dies geht möglicherweise etwas schneller, wenn Sie viele Dateien haben).
& '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'