[apple] “X of every”를 사용하여 각 객체의 여러 속성을 사용하여 레코드를 만드는 AppleScript가 있습니까?

스크립트를 사용하여 다음을 수행 할 수 있습니다.

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

실행하면, 모든 윈도우의 모든 탭의 모든 URL을 가져옵니다 (2 차원 목록)

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

그러나 가능합니다 :

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

목록 대신 레코드를 얻는 방법 :

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"}, {...}}}

가능합니까, 아니면 사용해야합니까? repeat?



답변

단일 객체 지정자로 레코드를 가져올 수는 없지만 목록을 가져올 수 있습니다.

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

레코드의 경우 반복 루프를 사용할 수 있습니다.

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"}}


답변