Come posso rendere più breve questo Apple Script? (uscire da più app tramite tell)

4

Voglio modificare una parte di uno script Apple per uscire da varie applicazioni contemporaneamente:

tell application "TweetDeck"
    quit
end tell
tell application "Google Chrome"
    quit
end tell

Nel complesso ci sono sette voci come sopra.

C'è un modo per scrivere questo più compatto?

    
posta gentmatt 24.10.2012 - 15:24
fonte

3 risposte

10

Puoi utilizzare un elenco di app e un loop. Aggiungi nuove app al primo elenco e verranno eliminate automaticamente.

set apps to {"Google Chrome", "Tweetbot", "ForkLift"}
repeat with thisApp in apps
    tell application thisApp to quit
end repeat
    
risposta data 24.10.2012 - 17:15
fonte
4
tell application "TweetDeck" to quit
tell application "Google Chrome" to quit

i blocchi tell-end-tell con un solo comando possono essere scritti in una riga.

    
risposta data 24.10.2012 - 16:30
fonte
1

Purtroppo non è possibile passare più applicazioni alla chiamata 'tell application'.

Piuttosto, potresti usare un'utilità unix che può terminare più applicazioni contemporaneamente - killall.

Puoi richiamare questa utility da un AppleScript:

do shell script "killall firefox Mail" - Termina FireFox e Mail

'killall' fa distinzione tra maiuscole e minuscole , quindi devi prima determinare i nomi dei processi delle applicazioni che desideri eliminare.

  • Avvia le applicazioni che vuoi terminare con lo script
  • Utilizzare il seguente comando (in una finestra Terminale) per trovare i nomi completi e corretti. (In questo esempio, stiamo cercando di scoprire il nome del processo corretto di tweetdeck ).

ps x | grep -i tweetdeck | grep -v grep

Con TweetDeck in esecuzione, questo darà un risultato simile al seguente:

59127 ?? S 0:01.23 /Applications/TweetDeck.app/Contents/MacOS/TweetDeck -psn_0_21423213

L'ultima parte del percorso è il nome del processo che dovrebbe essere passato a "killall". In questo caso TweetDeck (... Contents / MacOS / TweetDeck ).

Quindi, torniamo al nostro AppleScript e aggiungiamo TweetDeck alla stringa di applicazioni che stiamo chiudendo. Oltre al mio precedente esempio, lo farei:

do shell script "killall firefox Mail TweetDeck"

Spero che questo aiuti!

    
risposta data 24.10.2012 - 16:06
fonte

Leggi altre domande sui tag