1 votos

¿Applescript para hacer esto, esta vez, y aquello, la próxima vez?

Digamos que tengo un Applescript que hace ESTE CÓDIGO. Y tengo otro Applescript que hace ESE CÓDIGO. Siempre los ejecuto en secuencia, pero nunca a intervalos regulares. En otras palabras, cualquiera que haya ejecutado la última vez, siempre ejecutaré el otro la próxima vez.

¿Existe una manera de combinar los dos Applescripts en uno solo mediante una simple conmutación? Por ejemplo, al final del Applescript, podría escribir una variable al principio del script que se leerá la próxima vez, como EVENvariable u ODDvariable... para que, cuando el Applescript se ejecute, sepa en qué estado estaba la última vez que se ejecutó. ¿O hay una solución aún más simple y obvia que me estoy perdiendo?

3voto

Tetsujin Puntos 23061

Puedes hacerlo estableciendo tu propio parámetro por defecto, para almacenar el valor entre usos/reinicios, etc., de lo contrario un Applescript no recordará su estado actual de activación.

Este es un ejemplo rápido que establecerá un parámetro definido por el usuario [reemplace con el nombre real de la compañía y/o del producto y el nombre del parámetro memorable si tiene uno, de lo contrario los datos del ejemplo funcionarán bien] y luego sólo dirá en voz alta, 'sí' o 'no' dependiendo del estado del interruptor del parámetro por defecto.

Puedes ejecutarlo desde el script abierto o guardarlo como una aplicación.

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

La primera vez que se ejecute escribirá un nuevo archivo en ~/Library/Preferences llamado com.myCo.myApp.plist & contendrá un parámetro, con el estado actual de su conmutador, así

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

No necesitas hacer nada para 'mantener' esto por tu cuenta, simplemente puedes seguir enviando su nuevo valor con cada ejecución de script.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X