Operations on Multiple References
When an element specifier would return a list of references, it may be possible to ask for an attribute of this list as a shorthand for asking for that attribute of each element of the list in turn; the request to fetch the attribute is applied distributively to each item of the list.
For example, this works, and returns a list of strings, the names of each disk in turn:
tell application "Finder" to get name of every disk
Similarly:
tell application "iTunes" tell view of browser window 1 get name of every track end tell end tell
Possibly you can even apply this construct to the result of a boolean test:
tell application "iTunes" tell view of browser window 1 get database ID of every track whose name contains "Palestrina" end tell end tell
Those examples illustrate a property; the same thing may work for an element:
tell application "Finder" get file 1 of every folder end tell
When you request multiple elements distributed across a list in this way, whether you get back a list of lists or a single flattened list depends upon the individual application. For example:
tell application "Address Book" get every email of every person end tell
The result of that code is a list of lists—the outer list has as many items as there are persons, with each item being a list of every email address of the corresponding person. But when you try something similar in the Finder, the result is a single list of files:
tell application "Finder" get every file of every folder end ...
Get AppleScript: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.