Applescript 以编程方式删除单轨中的多个艺术品

Applescript 以编程方式删除单轨中的多个艺术品,applescript,itunes,artwork,itunesartwork,Applescript,Itunes,Artwork,Itunesartwork,我正在写一个AppleScript来管理我的专辑作品。我正在尝试编写一些代码来删除所选曲目中包含的所有艺术品(iTunes曲目最多可以包含30个艺术品对象)。这相当于在iTunes中选择曲目,打开“获取信息”窗口,然后选中(空白)插图框 例如,应该工作的代码: tell application "iTunes" to set t to track 1 of playlist "Example Playlist" tell t to delete every artwork 请注意,仅删除第一个

我正在写一个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)。试图将
每个artwork
说明符强制放入一个列表(以便可以反转)是行不通的,因为
delete
在用户定义的列表上似乎行不通

有人知道我做错了什么吗?我知道我可以使用一个重复循环来迭代轨迹中的所有艺术作品,并逐个删除每个作品,但这似乎违背了AppleScript尝试的简单性。我是否在某种程度上误用了
每个
语句?

试试:

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 tell