Viele Rar Dateien entpacken mit PowerShell

Ich hatte soeben das Problem, dass ich einige dutzend .rar Dateien hatte, welche in allen möglichen Unterverzeichnissen einen Ordners lagen. Da ich ehrlich gesagt viel zu faul bin jede Datei einzeln anzuklicken und zu entpacken habe ich vor einiger Zeit das Programm „Muli Unpacker“ gefunden, welches aber einen entscheidenden Nachteil hat: Das Winrar-Entpack Fenster ist immer im Vordergrund. Ergo ziemlich blöd wenn man nebenher irgendwas sinnvolles arbeiten möchte.
Da Winrar standardmäßig aber auch einige Command-Line Tools (rar.exe, unrar.exe) mitbringt, kann man dies auch schnell in der PowerShell automatisieren. Folgendermaßen könnte solch ein Script aussehen:

$input = Read-Host "Bitte Pfad eingeben:"
$files = Get-ChildItem $input -Recurse -Filter *.rar 

foreach ($file in $files)
{
    $Filename = $file.FullName
    $DirectoryName = $file.DirectoryName
    & 'C:\Program Files\WinRAR\UnRAR.exe' x -y $filename $DirectoryName | Out-Null
    if ($LASTEXITCODE -match "0")
    {
        rm "$DirectoryName\*.r*"
        rm "$DirectoryName\*.sfv"
        Write-Host "Gelöscht: $DirectoryName\*.r*"
        Write-Host "Gelöscht: $DirectoryName\*.sfv"
    }
    else
    {
        Write-Host -ForegroundColor Red "ACHTUNG FEHLER! $filename"        
    }
}

Ich hoffe dem ein oder anderen hilft das weiter 🙂 Gute Nacht 🙂

2 Comments

Filed under PowerShell, Windows

2 Responses to Viele Rar Dateien entpacken mit PowerShell

  1. thomas

    Hallo, guter Beitrag. Mich interessiert es jetzt wie man in einem Ordner alle *exe dateien in eine RAR Datei komprimiert mit powershell?

    Viele Grüße
    Thomas

  2. S0me0ne

    Hallo, Vielen Dank erst einmal!
    PowerShell benötigst du für das von dir genannte Szenario nicht, das solltest du wie folgt lösen können:
    C:\Program Files\WinRAR\rar.exe a C:\Archiv.rar C:\folder_with_exes\*.exe

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.