2011-09-26 3 views
2

Création d'une application pour apprendre à utiliser applescript pour envoyer plusieurs commandes au cours d'une action. Voici le code que je suis en train de jouer, mais j'ai supprimé les actions entre les "" et les ai remplacées par des chiffres. Tout fonctionne bien dans l'applescript, mais en faire un NSapplescript initwithsource: ligne a été un problème.Modification de Applescript en une seule source Source NSApplescript

tell application "Terminal" 
    activate 
    set currentTab to do script "1" 
    do script "2" in currentTab 
    do script "3" in currentTab 
    do script "4" in currentTab 
    delay 0.5 
    tell application "Finder" to set visible of process "Terminal" to false 
end tell 

Quelle est la meilleure façon de combiner cet applescript en une seule ligne? Merci!

Répondre

4

"Quelle est la meilleure façon de combiner cet applescript en une seule ligne?"

Utiliser AppleScript? :-D

Tout d'abord, dans AppleScript Editor, ouvrez la fenêtre Préférences et cliquez sur l'option Show Script menu in menu bar.

Ensuite, choisissez Open Scripts Folder à partir de l'élément de menu de script dans le coin supérieur droit de l'écran.

Créer un nouveau document de AppleScript avec le script suivant:

tell application "AppleScript Editor" 
    set string_ to text of first document 

    -- make a list with each line of the script 
    set stringLines to paragraphs of string_ 
    set originalDelims to AppleScript's text item delimiters 

    -- add newlines 
    set AppleScript's text item delimiters to "\\n" 

    -- now combine the items in the list using newlines 
    set stringNewlines to stringLines as string 

    set AppleScript's text item delimiters to "\"" 
    set stringNewlines to text items of stringNewlines 
    set AppleScript's text item delimiters to "\\\"" 
    set stringNewlines to stringNewlines as string 

    set AppleScript's text item delimiters to originalDelims 
    set stringNewlines to "@\"" & stringNewlines & "\"" 

    set the clipboard to stringNewlines 
end tell 

(Notez que ce script est pas parfait: il fonctionne très bien pour les scripts simples comme celui que vous avez fourni, mais ne peut pas se convertir).

Enregistrez-le en tant que script dans le dossier Scripts que vous avez révélé précédemment.

Ensuite, ouvrez votre document de script que vous souhaitez convertir et en faire le document avant dans AppleScript Editor. Appelez ensuite le script de conversion en le choisissant dans le menu Script.

Étant donné le script que vous avez fourni, il doit produire la NSString constante suivante:

@"tell application \"Terminal\"\n activate\n set currentTab to do script \"1\"\n do script \"2\" in currentTab\n do script \"3\" in currentTab\n do script \"4\" in currentTab\n delay 0.5\n tell application \"Finder\" to set visible of process \"Terminal\" to false\nend tell\n" 
+0

Nous vous remercions de votre aide, il m'a fallu un certain temps, je fini par obtenir à travailler dans l'application de cacao en le découpant en petits pièces et en travaillant la grammaire applescript. La seule raison pour laquelle je n'ai pas simplement utilisé le fichier applescript est que je dois modifier dynamiquement la ligne envoyée à la fenêtre du terminal en fonction des informations fournies. Jusqu'à présent, il fonctionne maintenant, j'ai juste d'autres problèmes pour réparer lol! Merci pour la ligne NSString je vais l'examiner et voir si cela fonctionne pour ce que je fais. Je ne savais pas vraiment que vous pourriez faire tout cela avec applescript cela va aider beaucoup – Kyle

Questions connexes