1 votos

¿Hay en AppleScript cualquier forma de usar "X de cada" obtener varias propiedades de cada objeto para crear un registro?

Es posible con la secuencia de comandos:

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

Cuándo ejecutar, obtener todas las direcciones URL de cada ficha de cada ventana (lista de dos dimensiones)

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 la 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 debo usar sólo repeat ?

2voto

Fuzzy Purple Monkey Puntos 702

No es posible obtener un registro con un especificador de objeto único, pero usted 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, puede utilizar un bucle 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"}}

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