String in Automator an UNIX-shell weitergeben

detto

detto

Aktives Mitglied
Thread Starter
Dabei seit
22.08.2007
Beiträge
3.182
Reaktionspunkte
263
Hi!

Ich beschäftige mich derzeit damit, mit Automator einen RAR-Entpacker zu basteln. Genauer gesagt, lediglich ein kleines Skript, dass sich alle Dateien schnappt die auf zB "part1.rar" enden, diese an das cli-utility "unrar" weitergibt und entpackt.

Folgendermaßen schauts bisher aus (und funktioniert einwandfrei soweit):
http://img256.imageshack.us/img256/6375/autorarnr1.png

Der Punkt "Finder-Objekt filtern" ist zudem änderbar während der Ausführung des Skripts, falls die Dateiendungen etwas anders ausschauen, zB "part01.rar".

Nun gut, jetzt kommt das Passwort an die Reihe. Im Bild schwarz unkenntlich gemacht, lässt sich mit dem "-p" Switch des "unrar"-utility natürlich ein Passwort festlegen.
Ich möchte jetzt jedoch, dass zuvor eine kleine Textabfrage kommt, in die man das Passwort eingibt, und dieses dann von "unrar" benutzt wird.

Weiß da jemand weiter, wie ich das anstellen kann?
Bin für jede Hilfe dankbar.

mfg,
detto
 
Hallo Detto,

folgende zwei Möglichkeiten sehe ich. Die erste: über AppleScript der Bash einen Parameter mit dem Passwort zukommen lassen; die zweite: aus der Bash eine Application (.app) starten, welche nach einem Passwort fragt und dieses an die Bash zurück gibt.

1.
tell application "Terminal"
activate
do script "echo test"
end tell

2.
osascript fragNachPwd.app

Das AppleScript für "fragNachPwd.app" sieht dann so aus.
tell application "Finder"
activate
set temp to display dialog "Bitte Passwort eingeben" default answer ""
set pwd to text returned of temp
end tell


Gruß Fabian
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: detto
Ich hab mich mal dran versucht es mit "osascript" zu lösen. Leider nur mit mäßigem Erfolg. Wegen der for-Schleife muss das Passwort für jedes gefundene File erneut eingegeben werden, geklappt hatte es mit dem Entpacken dann allerdings trotzdem nicht. :(

Vielleicht ist es fast sinnvoller das ganze von Anfang an in Applescript zu starten. Dafür fehlt mir aber noch die Kenntnis, von der Praxis will ich gar nicht erst reden. :rolleyes: ;)


Hier das soweit geschriebene Automatorskript, vll weiß ja jemand weiter. :confused:
http://www.file-upload.net/download-530476/RAR-Batch-Entpacker-mit-PW-Abfrage.workflow.zip.html
 
Fabi_K, danke für deine Hilfe.
Dein kleines Script hat mir sehr geholfen im Endeffekt.
Das ganze schaut jetzt folgendermaßen aus: http://img513.imageshack.us/img513/7494/bild2gt2.png


Aber ich verstehe eins noch nicht: Warum funktioniert es hiermit:

Code:
tell application "Finder"
   activate
   set temp to display dialog "Bitte Passwort eingeben" default answer ""
   set pwd to text returned of temp
end tell

Wenn ich aber die Zeile:
Code:
set pwd to text returned of temp
rauslasse gehts nicht...warum?


Auch wollte dieses Script hier nicht funktionieren, was ich nicht so ganz nachvollziehen kann:

Code:
try
   display dialog "Bitte Passwort eingeben" default answer ""
end try

Die Dialogbox erschien und ich hab das Passwort eingegeben. Automator müsste sich dann doch um die Sache kümmern, dass es den Text , also das Ergebnis weitergibt an die nächste Aktion (in diesem Falle ja das Shellskript).

Vielleicht kannst du mich da ja aufklären.
Ich vermute da schon etwas, aber iwie hab ich wohl n Brett vorm Kopf. :eek:
 
Hi detto,

"display dialog ..." gibt keinen Text zurück, sondern ein Objekt, welches zum einen den eingegeben Text enthält und zum anderen den gedrückten Button und evtl. noch andere Daten. Der Programmierer muss sich dann entscheiden, welche Daten er davon verarbeiten will.


Warum
Code:
try
   display dialog "Bitte Passwort eingeben" default answer ""
end try
nicht funktioniert kann ich leider nicht sagen. Nur so viel. Bei mir gibt er im Automator auch das Ergebnis nicht weiter :-(

Egal, ob ich try ... end try habe, oder nicht.


Gruß Fabian
 
So. Hab's.

Das Ergebnis wurde bei mir nicht weiter gegeben, weil ich den falschen "Play"-Button gedrückt habe :-D

Ich habe nämlich immer den Play-Button vom AppleScript anstatt vom Automator gedrückt.


Gruß Fabian
 
Zurück
Oben Unten