¿Existe en AppleScript alguna forma de usar "X de cada" para obtener múltiples propiedades de cada objeto para crear un registro?

1

Es posible con el script:

tell application "Safari"
    set urls to URL of every tab of every window
end tell

cuando se ejecute, obtenga todas las URL de cada pestaña de cada ventana (lista bidimensional)

Result:
 {{"http://domain1", "http://domain2", ...}, {"http://domain3", "http://domain4", ...}, {...}}

Pero es posible con:

tell application "Safari"
    set (urls & name) to URL of every tab of every window
end tell

para obtener un registro en lugar de una lista:

Result:
 {{{url: "http://domain1", name: "domain1 - foo"}, {url: "http://domain2", name: "domain2 - bar2"}, {...}}, {{url: "http://domain3", name: "domain3 - foo3"}, {url: "http://domain4", name: "domain4 - bar4"}, {...}}}

¿Es posible o debería usar solo repeat ?

    
pregunta static 24.10.2013 - 21:47

1 respuesta

2

No es posible obtener un registro con un solo especificador de objeto, pero puede obtener una lista:

tell application "Safari"
    {URL, name} of tabs of windows
end tell
-- {{{"http://url1", "title 1"}, {"http://url2", "title 2"}}}

Para un registro, puedes usar un ciclo de repetición:

set r to {}
tell application "Safari"
    repeat with t in tabs of windows
        set end of r to {|url|:URL of t, |name|:name of t}
    end repeat
end tell
r
-- {{|url|:"http://url1", |name|:"title 1"}, {|url|:"http://url2", |name|:"title 2"}}
    
respondido por el user495470 25.10.2013 - 08:05

Lea otras preguntas en las etiquetas