Automator: Schleife-bis-der-Computer-mit-was-fertig-ist?

C

cfaber

Neues Mitglied
Thread Starter
Dabei seit
14.12.2014
Beiträge
5
Reaktionspunkte
1
Liebe Macommunity,

ich habe ein verzwicktes Problem mit Automator:

1. ein Script soll mir ein .dmg mounten, das passwortverschlüsselt ist.
2. der script soll mir eine Datei öffnen, die auf diesem gemounteten drive drauf ist.

Das sieht einfach aus, oder? Es hat ein Problem:

1. "Angegebene Finder-Objekte abfragen" mit dem .dmg-file --> klappt vorzüglich.
2. "Finder-Objekte öffnen" mit dem .dmg-File --> klappt vorzüglich. Finder fragt mich "Passwort?", ich tippe, Finder mountet, alles geht.
jetzt wirds schwierig: Der Automator-Script wartet nämlich nicht, bis ich das Passwort eingegeben habe, sondern macht gleich weiter:
3. "Angegebene Finder-Objekte abfragen" mit der zu öffnenden Datei auf dem volume --> scheitert, weil ich bin noch am Passwort-tippen.

Ich habe es schon probiert mit "Pause: 10 Sekunden" - das geht dann, wenn ich das Passwort in unter 10 Sekunden eingebe. Wenn nicht --> gehts wieder daneben.

Gibt es irgendeinen Trick wie "suche solange immer wieder die zu öffnende Datei, bis du sie endlich findest"? Oder: "Warte gefälligst, bis der Finder das Mounten des .dmg erfolgreich augeschlossen hat"?

Ich habe mir schon die "Endlosschleife" angesehen, aber die wiederholt ja (sagt die Apple-Hilfe) alle Schritte vor der Schleife. Ich will nur einen Schritt wiederholen.

Sowas wie "while ..." oder "if/endif" gibts ja nicht, oder? Ist ein shell script eine Alternative?

Danke und glg Claus

Danke glg Claus
 
Aaah, AppleScript! Danke, das probiere ich. Mit Automatir scheints ja nicht zu gehen.
Super, merci vielmal!
 
Kannst Du nicht den ganzen interaktiven Kram ins Skript packen? Beim Mounten gleich das Passwort mitgeben, damit er Dich nicht danach fragt?
 
Yeah!

Geschafft. So sieht der Script aus. Danke für den Tipp! AppleScript kann halt doch mehr als Automator.

set diskName to "KundenDB"
set mountedDisks to paragraphs of (do shell script "/bin/ls /Volumes")
if diskName is not in mountedDisks then
tell application "Finder"
open document file "KundenDB.dmg" of folder "Beratung-lokal" of folder "Documents" of folder "claus" of folder "Users" of startup disk
end tell
end
if
set
diskIsMounted to "no"
repeat while diskIsMounted = "no"
set mountedDisks to paragraphs of (do shell script "/bin/ls /Volumes")
if diskName is in mountedDisks then
set diskIsMounted to "yes"
end if
end
repeat
tell
application "Finder"
open document file "KundenDB.fmp12" of disk "KundenDB"
end
tell

Kleiner Tipp aus meiner Lernkurve: Man kann die Liste der gemounteten Volumes (hier mit shell script abgefragt) auch kriegen, indem man "SystemEvents" fragt:
--> tell application "System Events" to set diskNames to name of every disk
Hat einen Nachteil: Mein Mojave fragt mich jedes Mal, ob das Programm auch wirklich SystemEvents auslösen darf - auch wenn ich in den Sicherheitseinstellungen drin habe, dass es das darf. Also bin ich auf den Shell script ausgewichen.

Man kann auch das Passwort mit reinpacken zum Öffnen des DMG, aber das will ich nicht - Datenschutz. Der Trick ist ja gerade: "Warte, bis ich das Passwort eingetippt habe und das Ding gemounted ist..."

Credits, wo ich den Trick mit dem shell script her habe: hier
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: mausfang
Zurück
Oben Unten