Attivazione / disattivazione di Applescript, questa volta e quella, la prossima volta?

0

Diciamo che ho un Applescript che fa THISCODE. E ho un altro Applescript che fa THATCODE. Li faccio sempre in sequenza, ma mai a intervalli regolari. In altre parole, a prescindere da quello che ho eseguito l'ultima volta, eseguirò sempre l'altro la prossima volta.

C'è un modo per combinare i due Applescripts in uno usando un semplice interruttore? Ad esempio, alla fine di Applescript, potrei scrivere una variabile all'inizio dello script che verrà letta la prossima volta, come EVENvariable o ODDvariable ... in modo che, quando viene eseguito Applescript, sappia quale stato era l'ultima volta che correva. O c'è una soluzione ancora più semplice e ovvia che mi manca?

    
posta 2oh1 15.12.2015 - 18:55
fonte

1 risposta

2

Puoi farlo impostando il tuo parametro defaults, per memorizzare il valore tra usi / riavvii, ecc. In caso contrario, un Applescript non ricorderà lo stato di attivazione corrente.

Questo è un esempio rapido che imposterà un parametro definito dall'utente [sostituirlo con la società attuale e / o il nome e il nome del prodotto nome del parametro memorabile se ne hai uno, altrimenti i dati di esempio andranno bene] quindi diremo ad alta voce, "sì" o "no" a seconda dello stato del parametro parametro di default.

Puoi eseguirlo dallo script aperto o salvarlo come applicazione.

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

Alla prima esecuzione scriverà un nuovo file in ~/Library/Preferences chiamato com.myCo.myApp.plist & conterrà un parametro, con lo stato corrente del commutatore, come in questo

<?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>

Non devi fare nulla per "mantenerlo" da solo, puoi semplicemente continuare a inviare il suo nuovo valore ad ogni esecuzione di script.

    
risposta data 15.12.2015 - 19:28
fonte

Leggi altre domande sui tag