我正在写一个AppleScript来管理我的专辑艺术作品。我试图写一些代码,将删除所有的艺术作品包含在选定的轨道(iTunes轨道可以包含多达30个艺术品对象)。这相当于选择iTunes中的曲目,打开“获取信息”窗口,并检查(空白)艺术作品框。
例如,应该工作的代码:
tell application "iTunes" to set t to track 1 of playlist "Example Playlist"
tell t to delete every artwork请注意,仅删除第一幅艺术品的语法为:tell t to delete artwork 1
不幸的是,AppleScript没有合作。如果轨道有2个艺术品,则只有第一个被删除;如果轨道有3个艺术品,则前2个被删除。
它似乎是一个问题,因为在执行delete命令期间更改了艺术品索引(例如,对于带有2个艺术品的跟踪,它成功地删除了艺术品1,但是当它试图删除艺术品2时,它找不到它,因为当原始的艺术品1被删除时,它被重命名为艺术品1)。试图将every artwork说明符强制放到列表中(以便它可以反转)是行不通的,因为delete似乎不适用于用户定义的列表。
有人知道我做错了什么吗?我知道我可以使用一个重复循环来迭代轨道中的所有艺术品,分别删除每一个,但这似乎与AppleScript的简单性尝试背道而驰。我是不是滥用了every语句?
发布于 2013-11-11 09:44:11
尝试:
tell application "iTunes"
set t to first item of (get selection)
delete t's artworks
end tell或
tell application "iTunes"
set t to first item of (get selection)
set tArtwork to t's artworks
repeat with i from (count tArtwork) to 1 by -1
delete tArtwork's item i
end repeat
end tellhttps://stackoverflow.com/questions/19901578
复制相似问题