Variables de acceso a AppleScript mediante secuencia de comandos de ejecución

0

Digamos que tengo un script:

set hi to 7
run script "display dialog hi"

Cuando lo ejecuto, dice que hi no está definido.

¿Hay alguna manera de hacer que hi sea accesible desde el comando run script ? Si no, ¿qué más puedo hacer? La aplicación real para esto es cambiar el nombre de una variable. Lo que hago ahora es:

    repeat (random number from 0 to 5) times
    set rand2 to (random number from 0 to 7) + 97
    set rand to (random number from 0 to 7) + 97
    set switch to rand2
    run script ("set " & (ASCII character rand) & "1 to " & (ASCII character rand2) & "1")
    run script ("set " & (ASCII character rand2) & "1 to " & (ASCII character switch) & "1")
    run script ("set " & (ASCII character rand) & "2 to " & (ASCII character rand2) & "2")
    run script ("set " & (ASCII character rand2) & "2 to " & (ASCII character switch) & "2")
end repeat

Pero eso no funciona. ¿Estas son las soluciones para esto?

Gracias

    
pregunta APCoding 30.10.2015 - 02:36

1 respuesta

1

Para que las variables persistan en el mismo ámbito, debe ejecutar todos los conmutadores de variables en el mismo comando de ejecución del script.

Esto demuestra cómo agregar una variable al texto del script de ejecución. Devolvería una lista de resultados de las variables. Sin embargo, este / su script no funciona porque está asignando rand + 1 a rand2 + 1, antes de que la variable rand2 + 1 haya sido asignada. No sé qué es lo que estás tratando de lograr, así que no puedo arreglar más de tu script. Pero, esto responde a su pregunta original específica, la sintaxis para agregar variables al texto de una cadena de script de ejecución.

repeat (random number from 0 to 5) times
    set rand2 to (ASCII character ((random number from 0 to 7) + 97))
    set rand to (ASCII character ((random number from 0 to 7) + 97))
    set switch to rand2

    set scriptText to ("set " & rand & "1 to " & rand2 & "1" & return & ¬
        "set " & rand2 & "1 to " & switch & "1" & return & ¬
        "set " & rand & "2 to " & rand2 & "2" & return & ¬
        "set " & rand2 & "2 to " & switch & "2" & return & ¬
        "return {" & rand & "1, " & rand2 & "1, " & rand & "2, " & rand2 & "2}")
    set theResult to run script scriptText
end repeat
    
respondido por el jweaks 30.10.2015 - 06:56

Lea otras preguntas en las etiquetas