Entpacken mit Winrar

rosanne

Newbie
Registriert
März 2020
Beiträge
4
Hallo, ich versuche die ganze Zeit es hinzubekommen, dass winrar per command alle Ordner nach rar Dateien durchsucht und sie dann selbständig in seinen Ordner entpackt.

Beispiel c:\Ordner\1\ c:\Ordner\2\ c:\Ordner\3\

Kann mir einer einen Tipp geben?

Gruß Rosanne
 
Das wirst du mit Winrar alleine nicht schaffen, du brauchst ein Powershell Script dazu welches zuerst die rar Dateien sucht (find unter Linux) und dann an Winrar übergibt.
 
Test\CD1\xx1.rar
Test\CD2\xx2.rar

Dateien werden nach Test\CDX entpackt
______________________________
set folder="C:\test"
set unrar="C:\Program Files\WinRAR\"
FOR /F %%I IN ('dir %folder% /S /B *.rar') DO %unrar%unrar x %%I %%~pI

Dies habe ich aus einem anderen Thread aus diesem Forum.
Leider funktioniert dieses Script nicht richtig, da immer nur der selber ordner entpackt wird.
 
Ohne die einzelnen Komponenten geht das Script nicht.
ich habe aber das Problem erkannt. Die Winrar Datein sind geplittet. *.r01 *.r02 *.rar Er versucht mit dem Script jede der gesplitteten Dateien zu entpacken, obwohl man nur die *.rar Datei entpacken müsste.
Da im Script *.rar angeben ist und nicht *.r01 etc. verstehe ich nicht, wieso das Script so handelt.
 
Keine Ahnung ob das Script, was Du da hast, fehlerhaft war oder ob Du es fehlerhaft übernommen hast... jedenfalls paßt es nicht richtig. Ich korrigier Dir das mal.

Code:
@REM deaktiviere echo der Befehle
@echo off
set folder="C:\test"
REM Variable muß normalerweise nicht gesetzt werden, da Winrar dem Systempfad hinzugefügt wird
REM Außerdem kann einfach der Befehl WinRAR.exe verwendet werden.
REM Der Sauberkeit wegen füttern wir die Variable "natürlich", sprich mit einem ganz sauberen Pfad ohne irgendwelche Verzierungeren. Hilft später bei der Verwendung.
set unrar=C:\Program Files\WinRAR

REM Der Inhalt der Klammer war fehlerhaft.

REM Die Variable %unrar% enthält Leerzeichen (siehe oben). Da müssen wir auf umschließende " " achten.
REM Wichtig: SET schmeißt alles rein was da steht, auch Anführungszeichen; deswegen ist es wichtig, daß man da den Überblick behält (oder, wie hier, einfach keine " " mit reinnimmt). Ansonsten käme unten
REM zusammen ""C:\Program Files\WinRAR\"unrar"  heraus (literal).
REM Was syntaktisch gefährlich werden kann und ggfs. nicht funktioniert.

REM Das %%I ist case sensitiv. Würde deshalb das I dort dringend durch was anderes ersetzen.
REM  Groß I und klein l sehen einander zu ähnlich und wenn man nur einen Teil davon durch klein i und groß L zur Unterscheidung ersetzt (aber nicht alle) funktioniert es auch nicht.

REM %folder% funktioniert nur, da keine Leerzeichen im Pfad enthalten sind.
REM Allerdings beißen sich Anführungszeichen und die FOR /F Syntax.
REM Für bessere Portabilität (zB wenn Folder C:/der test Pfad/ enthält): HELP FOR angucken und den Abschnitt zu USEBACKQ durchgehen. 

FOR /F %%I IN ('dir /S /B %folder%\*.rar') DO @start "%unrar%\winrar.exe" x %%I %%~pI

Die Syntax von winrar/unrar hab ich allerdings nicht geprüft. Mir war ja so, als ob die zweite Angabe für den Befehl x(tract) eine Maske für zu extrahierende Dateien war und nicht der Zielpfad... aber sicher bin ich mir da auch nicht.
 
Zuletzt bearbeitet von einem Moderator:
xkann.jpg


@RalphS vielen Dank, dass du dir die Mühe gemacht hast, die einzelnen Schritte zu erläutern.
Bekomme diese Fehlermeldung beim ausführen des Scripts.
Laut der Anleitung ist x der Befehl für extract bei Winrar.
 
Zurück
Oben