• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

Entpacken mehrerer Dateien mit Passwortabfrage

LarsSW

Boskoop
Registriert
24.03.08
Beiträge
40
Ich habe in den tiefen des Netzes irgendwo ein Applescript aufgetan, das mehrere Dateien nacheinander mit unrar entpacken soll. Vorher wird nach einem Passwort gefragt, das dann für alle Dateien angewendet wird.

Hier das Skript:
Code:
[COLOR=#000000][B]on[/B] [/COLOR][COLOR=#0433FF][B]open[/B][/COLOR][COLOR=#4F8F00]DropList[/COLOR]    [B]set[/B] [COLOR=#4f8f00]ordner[/COLOR] [B]to[/B] "~/Downloads"
[COLOR=#012FBE][B]display dialog[/B][COLOR=#000000] "Passwort" [/COLOR]default answer[COLOR=#000000] ""[/COLOR][/COLOR]
    [B]set[/B] [COLOR=#4f8f00]passwort[/COLOR] [B]to[/B] [COLOR=#5730be]text returned[/COLOR] [B]of[/B] [COLOR=#812fdc]result[/COLOR]
    [B]repeat[/B] [B]with[/B] [COLOR=#4f8f00]objectRef[/COLOR] [B]in[/B] [COLOR=#4f8f00]DropList[/COLOR]
        [COLOR=#012fbe][B]do shell script[/B][/COLOR] "/bin/unrar e -p" & [COLOR=#4f8f00]passwort[/COLOR] & " -ad -o- \"" & [COLOR=#812fdc]POSIX path[/COLOR] [B]of[/B] [COLOR=#4f8f00]objectRef[/COLOR] & "\" " & [COLOR=#4f8f00]ordner[/COLOR]
    [B]end[/B] [B]repeat[/B]
[B]end[/B] [COLOR=#0433FF][B]open[/B][/COLOR]

Problem: Wenn ein Fehler auftritt (z. B. ein Archiv ist kaputt) bricht es ab. Also hab ich in den unrar-Befehl entsprechende Parameter eingebaut: -y, damit alle Nachfragen (soll Datei xyz überschrieben werden?) automatisch bestätigt werden und -inul, damit alle Meldungen von Unrar unterdrückt werden.

Wenn ich jetzt nur ein Archiv mit der Maus draufziehe, klappt alles. Bei mehr als einem Archiv erhalte ich aber die Meldung: "Der Befehl wurde mit einem Ergebnis ungleich Null beendet.".

Woran kann's liegen?
 
Könnte sein, dass unrar schon das 2. Archiv öffnen möchte, wenn es noch mit dem 1. Archiv beschäftigt ist. AppleScript wartet nicht, bis ein Shellscript abgeschlossen ist.

Davon abgesehen ist das unnötig kompliziert. Wenn du sowieso mit der Shell arbeitest, dann lässt sich das auch einfacher lösen:

Code:
find ~/Downloads/ -name "*.rar" -exec unrar -p passwort -y -ad x {} \;