0 votes

Une bascule Applescript pour faire Ceci, cette fois, et Cela, la prochaine fois ?

Disons que j'ai un Applescript qui fait CECODE. Et j'ai un autre Applescript qui fait CECI. Je les exécute toujours dans l'ordre, mais jamais à intervalles réguliers. En d'autres termes, quel que soit le script que j'ai exécuté la dernière fois, je vais toujours exécuter l'autre la fois suivante.

Existe-t-il un moyen de combiner les deux Applescripts en un seul à l'aide d'une simple bascule ? Par exemple, à la fin de l'Applescript, pourrais-je écrire une variable au début du script qui sera lue la prochaine fois, comme EVENvariable ou ODDvariable... de sorte que, lorsque l'Applescript s'exécutera, il saura dans quel état il était la dernière fois qu'il s'est exécuté. Ou bien y a-t-il une solution encore plus simple et évidente qui m'échappe ?

3voto

Tetsujin Points 95239

Vous pouvez le faire en définissant votre propre paramètre par défaut, afin de stocker la valeur entre les utilisations/redémarrages, etc., sinon un Applescript ne se souviendra pas de votre état actuel de basculement.

Il s'agit d'un exemple rapide qui définira un paramètre défini par l'utilisateur [remplacez par le nom réel de la société et/ou du produit et le nom du paramètre à mémoriser si vous en avez un, sinon les données de l'exemple feront l'affaire] puis dira à haute voix "oui" ou "non" en fonction de l'état du commutateur de paramètres par défaut.

Vous pouvez l'exécuter à partir du script ouvert ou l'enregistrer comme une application.

set newTestParameter to "YES"
try
    set oldTestParameter to do shell script "defaults read com.myCo.myApp myParamSet"
    if oldTestParameter is in {"1", "YES"} then
        set newTestParameter to "NO"
    end if
end try
do shell script "defaults write com.myCo.myApp myParamSet " & newTestParameter

--your actual code, dependant on above switch
if newTestParameter is in {"1", "YES"} then
    say "Yes"
    -- run thisCode
else
    say "No"
    -- run thatCode
end if

Lors de la première exécution, il écrira un nouveau fichier dans le fichier ~/Library/Preferences llamado com.myCo.myApp.plist & contiendra un paramètre, avec l'état actuel de votre bascule, comme ceci

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>myParamSet</key>
    <string>NO</string>
</dict>
</plist>

Vous n'avez pas besoin de faire quoi que ce soit pour le 'maintenir' par vous-même, vous pouvez simplement continuer à envoyer sa nouvelle valeur à chaque exécution de script.

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