windows-nutzer
Goto Top

Script zum Entpacken von rar und zip-Dateien

Hallo zusammen,

ich will mir gerne ein Script schreiben das mir rar und zip Dateien entpackt. Es sind mindestens 100 an der Zahl und teilweise liegen die in Unterordnern.

Beim Recherchieren habe ich folgendes gefunden:
unpack() {
    for file in $@
    do
        if [ "${file%.[zZ][iI][pP]}" != "${file}" ]  
        then
            unzip "$file"  
        elif [ "${file%.[rR][aA][rR]}" != "${file}" ]  
        then
            unrar x "$file"  
        else
            echo "Couldn't determine file type..."  
        fi
    done
}
# Aufruf: unpack *

oder das hier:
for rarfile in *.rar;do unrar x "$rarfile"; done  

beziehungsweise für zip
for zipfile in *.zip;do unzip "$zipfile"; done  

Ich habe die Datei dann mit Test.bat in einen Testordner gespeichert und eine rar-Datei zum Testen dorthin kopiert. Leider wird weder bei dem einen noch bei dem anderen Code etwas entpackt. Wo liegt mein Fehler?

Vom Script-Schreiben habe ich leider keine Ahnung. Gibt es ein Lehrbuch oder eine Seite, die ihr zum Lernen empfehlen könnt?

Content-Key: 330600

Url: https://administrator.de/contentid/330600

Printed on: April 19, 2024 at 23:04 o'clock

Member: kaiand1
kaiand1 Feb 26, 2017 at 14:20:59 (UTC)
Goto Top
Eine Fehlermeldung hast du sicherlich bekommen die schon auf den Fehler Hinweist die jedoch nicht angegeben wurde.
Zudem kannst du zb auch 7z verwenden.
Wobei die Packer da auch schon soweit in der Lage sind wenn du einfach nur
7z x *.rar
angibst und der alle rar-Archive Entpackt.
Member: Tsocin
Solution Tsocin Feb 26, 2017 updated at 15:57:02 (UTC)
Goto Top
Zitat von @windows-nutzer: Test.bat

Wegen des Dateinamens und deines Benutzernames vermute ich, du bist im Windows-Umfeld unterwegs. Das Skript ist allerdings ein Shell-Skript, welches unter Linux läuft.

Schau mal hier.
Member: windows-nutzer
windows-nutzer Feb 26, 2017 at 18:48:07 (UTC)
Goto Top
Danke für die Rückmeldung. Das wusste ich natürlich nicht, dass das ein Shell-Skript für Linux ist. Das nützt mir nichts. Danke für den Hinweis. Wie müsste das jetzt für die Windows Umgebung aussehen?

7zip ist sehr gute Software, doch ich will das Skript noch weiter ausbauen. Da sollen die entpackten Dateien dann umbenannt werden nach dem Namen der rar-Datei. Aber eins nach dem anderen. Erstmal brauche ich ein Skript, das mir die Dateien entpackt.
Member: Tsocin
Tsocin Feb 26, 2017 at 18:54:27 (UTC)
Goto Top
Schau dir mal den Link in meinem vorherigen Post an. Dort habe ich entsprechende Lösungshinweise bei Stackoverflow verlinkt.
Member: windows-nutzer
windows-nutzer Feb 27, 2017 at 20:38:42 (UTC)
Goto Top
Diesen kleinen Link hatte ich vollkommen übersehen face-smile

Jetzt habe ich mir einen Code rausgesucht
for /R "C:\root\folder" %%I in ("*.zip") do (  
  "C:\Programme\7-Zip\7z.exe" x -y -o"%%~dpnI" "%%~fI"   
)
aber passieren tut da leider nichts. 7zip ist installiert.
Ich bin völlig planlos.
Member: Tsocin
Solution Tsocin Feb 28, 2017 at 09:17:18 (UTC)
Goto Top
Hast du die Pfade angepasst? Du musst "C:\root\folder" an das Verzeichnis mit deinen ZIP-Dateien anpassen. Und natürlich den Pfad zu 7zip ebenfalls. Falls du ein 64bit Betriebssystem und ein 32bit 7zip hast, müsste der Pfad z.B. C:\Programme (x86)\... lauten.

Was gibt das Programm denn als Fehlermeldung aus? Setz ggf. mal ein "pause" an das Ende der Batch-Datei und poste die Ausgabe hier.
Member: windows-nutzer
windows-nutzer Feb 28, 2017 at 21:06:28 (UTC)
Goto Top
Jetzt läuft's face-smile
Hatte übersehen, dass ich "C:\root\folder" entsprechend umändern muss. Bin ein totaler Frischling was das angeht.
Danke
Member: windows-nutzer
windows-nutzer Mar 01, 2017 at 21:28:12 (UTC)
Goto Top
Woran lässt sich ablesen, dass das Shell-Skript zu Beginn meines Beitrages für Linux gedacht ist?
Member: Tsocin
Tsocin Mar 04, 2017 at 07:30:06 (UTC)
Goto Top
Das erkennt man an der Syntax - z.B. das Konstrukt if - elif - fi gibt es in Batch nicht. Wenn man die Syntax der verschiedenen Programmiersprachen ein wenig kennt, erkennt man das. Ansonsten einfach mal ein paar zentrale Sprachelemente (wie z.B. "if elif fi") bei Google eingeben.