Ich habe eine Applescript-Droplet-Anwendung, die ich vom Terminal ausführen muss. osascript
Ich kann oder sogar nur verwenden open
, um die AS-App zu öffnen, aber das führt ihren on run
Handler aus, nicht den on open
Droplet-Handler, den ich ausführen muss. Ich habe versucht, die "gedroppte" Datei in ( osascript /Path/To/App.app /Path/To/Droppings.txt
) zu übergeben, aber der on run
Handler wird immer noch ausgeführt. Gibt es eine Möglichkeit, dies zu tun? Und wenn nicht mit Bash, ist es von einem anderen AppleScript aus möglich? Danke.
Sie können ein anderes AppleScript verwenden, das den Finder anweist, Dateien mit der Droplet-Anwendung zu öffnen.
Speichern Sie dieses Skript beispielsweise wie /Applications/droplet.app
im AppleScript Editor:
on open a
repeat with f in a
say POSIX path of f
end repeat
end open
Dann renne:
osascript -e 'on run {f}' -e 'tell app "Finder" to open POSIX file f as alias using POSIX file "/Applications/droplet.app"' -e end /bin/test
Um mehrere Dateien zu öffnen, konvertieren Sie die Liste der Argumente in eine Liste von Dateiobjekten:
osascript -e 'on run a
set l to {}
repeat with f in a
set l to l & POSIX file f
end
tell app "Finder" to open l using (POSIX file "/Applications/droplet.app")
end' ~/*
Alternativ können Sie die Droplet-Anwendung mit Automator anstelle von AppleScript Editor erstellen:
Dann laufen open -a droplet2 /bin/test
.
Der run
Handler wird auch für Dateien verwendet, die in der Anwendung abgelegt werden. Ein Handler mit dem Namen open
hat keine besondere Bedeutung.
Ein Nachteil der Verwendung von Automator-Anwendungen besteht darin, dass es eine relativ lange Verzögerung gibt, bevor sie ausgeführt werden.
adayzdone
Schohe001
x
, geben Sie ihn an den Alias der anderen App weiter. Macht das Sinn?Schohe001