Escribir en un archivo plist varias preferencias al mismo tiempo

1

Necesito escribir alrededor de 50 preferencias en un archivo .plist. ¿Hay alguna forma de escribir solo una vez en un archivo plist? Mi código actual tiene 50 líneas de escritura predeterminadas.

do shell script "defaults write testing.testing mypref " & "Kjlk"
do shell script "defaults write testing.testing otherpref " & "something"
do shell script "defaults write testing.testing thirdpref " & "whateva"
...
    
pregunta 87as 03.06.2013 - 13:21

3 respuestas

1

El comando default de Mac no está diseñado para funcionar así.

Verás una aceleración sustancial haciendo que Applescript haga (o llame) un script de shell para emitir los 50 comandos. Puede envolver ambas versiones de la secuencia de comandos en una llamada date o usar la función time para cronometrar la secuencia de comandos shell si no está seguro de cuál es el retraso en su Mac.

Es probable que la gran mayoría de la demora sea un bucle de Apple y luego se ejecute un entorno para que se ejecute cada script. Al escribir un script, no solo se reducirá el inicio a 1/50 del tiempo, sino que también se ejecutará mucho más rápido en general.

Si realmente quisiera, podría escribirse una función para analizar múltiples entradas; pero probablemente sea más fácil para usted tener 50 líneas de script de shell.

    
respondido por el demure 03.06.2013 - 15:05
0

Como se mencionó en la respuesta de Demure, un solo comando do shell script sería más rápido:

do shell script "defaults write testing.testing mypref Kjlk
defaults write testing.testing otherpref something
defaults write testing.testing thirdpref whateva"

También puedes usar los eventos del sistema para editar las listas:

tell application "System Events" to tell contents of property list file "/tmp/test.plist"
    make new property list item at end with properties {kind:string, name:"key", value:"value"}
    make new property list item at end with properties {kind:string, name:"key2", value:"value2"}
    set value of property list item "key2" to "value3"
end tell

Ambos tardaron unos 0,5 segundos en agregar 100 nuevas claves. Múltiples comandos de shell shell tomaron alrededor de 2 segundos.

    
respondido por el user495470 04.06.2013 - 12:08
-1
  

Si realmente quisiera, podría escribirse una función para analizar múltiples entradas

Gracias. Creo que crearé un script de shell.

No tengo idea de lo que significa la cita anterior.

    
respondido por el 87as 03.06.2013 - 19:13

Lea otras preguntas en las etiquetas