1 votes

sub Applescript avec la propriété Global /

J'aimerais exécuter un deuxième Applescript avec les variables du premier Applescript.

Si je fais un premier script pour

property myName : "Kevin"

Et un second script avec :

set remoteScript to (load script "/Users/kevin/Documents/Script/script1.scpt")

set myName to myName of remoteScript

Dans ce cas, tout va bien, c'est le problème qui se pose ! Le problème est que mes variables sont générées sur le premier script et donc, je ne peux pas utiliser les propriétés.

J'ai essayé d'utiliser Mondial mais j'ai toujours une erreur

Mes variables sur mon script principal sont principalement définies (mais pas seulement) à partir de Javascript, j'avais l'habitude d'utiliser liste pour les stocker mais je suis curieux et j'aimerais essayer une autre méthode (de plus, j'ai probablement des milliers de variables).

2voto

red_menace Points 1014

A propriété est un peu différent d'une variable - il s'agit plutôt d'une déclaration getter/setter, où son utilisation exécute le get/set handler de l'objet script spécifié et renvoie le résultat.

A mondial a également une portée sur les objets script, mais comme il n'a pas de valeur tant qu'il n'en a pas assigné une, vous devez courir le script à distance pour le faire. En outre, vous devriez probablement définir la ou les mêmes variables comme globales dans votre deuxième script, par exemple :

Premier script :

property myName : "Kevin"
global test, one, more

doSomething() -- set globals

on doSomething()
  set test to "testing"
  set one to 1
  set more to {2, 3}
end doSomething

Deuxième script :

global test, one, more

set remoteScript to (load script "/Users/you/path/to/First.scpt")
run remoteScript

log myName of remoteScript
log test
log one
log more

1voto

wch1zpink Points 6067

Si vous essayez de définir myName comme property myName vous pouvez alors définir property myName : missing value puis fixer sa valeur avec set myName to myName of remoteScript

property myName : missing value

set scriptLibrary to (path to documents folder as text) & "Script:script1.scpt"
set remoteScript to load script alias scriptLibrary

set myName to myName of remoteScript

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X