我如何调整此代码以从特定的 Itunes 播放列表中删除音乐

How could I adapt this code for removing music from specific Itunes playlist

tell application "iTunes"
    repeat with t in (get file tracks of library playlist 1)
        if location of t is missing value then delete t

    end repeat


end tell

亲爱的社区,您好,

任何人都知道我如何调整上面的代码以从给定的播放列表中删除曲目。 但不是在从硬盘驱动器中删除它的情况下(就像现在,使用 "missing value"),而是如果文件在硬盘驱动器上的位置发生变化,它将被删除。 我想到了一些像 "changed value" 这样的命令来定位 t,但遗憾的是没有用。

我希望我说得够清楚了。如果没有,我可以尝试更好的:)

感谢帮助

如果你想删除自某个日期起文件被移动到另一个目录的播放列表项目,你可以这样做:

tell application "iTunes"
    repeat with t in (get tracks of playlist "playlist name")
        do shell script "mdls -rnkMDItemDateAdded " & quoted form of (POSIX path of (get location of t)) & "|cut -d' ' -f1"
        if result > "2018-01-01" then delete t
    end repeat
end tell

上面的脚本只从指定的播放列表中删除每个曲目,而不是从整个 iTunes 库中删除。

"Date added" 是文件最后一次移动或首次索引的日期,因此上面的脚本也适用于在指定日期之后由 Spotlight 创建或首次索引的文件。 mdimport -A(列出所有元数据属性)将 kMDItemDateAdded 描述为 Date when this item was last moved:

$ mdimport -A|grep added
'kMDItemDateAdded'      'Date added'        'Date when this item was last moved'        'dateadded, added, date'

如果要删除播放列表中文件不在指定目录下的项目,可以使用如下脚本:

tell application "iTunes"
    repeat with t in (get tracks of playlist "playlist name")
        location of t
        tell application "Finder" to POSIX path of (folder of file result as alias)
        if result is not "/Users/username/folder" then delete t
    end repeat
end tell