¿Cómo puedo hacer que este script de Apple sea más corto? (salir de varias aplicaciones a través de Tell)

4

Quiero editar una parte de un Apple Script para cerrar varias aplicaciones a la vez:

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

Sobre todo hay siete entradas como arriba.

¿Hay alguna forma de escribir esto más compacto?

    
pregunta gentmatt 24.10.2012 - 15:24

3 respuestas

10

Puedes usar una lista de aplicaciones y un bucle. Simplemente agregue nuevas aplicaciones a la primera lista y se cerrarán automáticamente.

set apps to {"Google Chrome", "Tweetbot", "ForkLift"}
repeat with thisApp in apps
    tell application thisApp to quit
end repeat
    
respondido por el Nathan Greenstein 24.10.2012 - 17:15
4
tell application "TweetDeck" to quit
tell application "Google Chrome" to quit

los bloques tell-end-tell con un solo comando pueden escribirse en una línea.

    
respondido por el Max Ried 24.10.2012 - 16:30
1

Lamentablemente, no puede pasar varias aplicaciones a la llamada "indicar aplicación".

Más bien, podría usar una utilidad de Unix que puede terminar varias aplicaciones a la vez, killall.

Puede invocar esta utilidad desde un AppleScript:

do shell script "killall firefox Mail" : esto terminaría con FireFox y Mail

'killall' distingue entre mayúsculas y minúsculas , por lo que primero debe determinar los nombres de proceso de las aplicaciones que desea eliminar.

  • Inicie las aplicaciones que desea que finalicen con el script
  • Use el siguiente comando (en una ventana de Terminal) para encontrar sus nombres completos y correctos. (En este ejemplo, estamos buscando el nombre correcto del proceso tweetdeck ).

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

Con TweetDeck en ejecución, esto dará un resultado similar al siguiente:

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

La última parte de la ruta es el nombre del proceso, ya que se debe pasar a 'killall'. En este caso, TweetDeck (... Contents / MacOS / TweetDeck ).

Por lo tanto, volvemos a nuestro AppleScript y agregamos TweetDeck a la cadena de aplicaciones que estamos terminando. Además de mi ejemplo anterior, lo haría:

do shell script "killall firefox Mail TweetDeck"

Espero que esto ayude!

    
respondido por el macaco 24.10.2012 - 16:06

Lea otras preguntas en las etiquetas