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

时间:2018-08-27 17:58:52

标签: applescript 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

您好,亲爱的社区,

任何人都知道如何修改上面的代码以使曲目从给定的播放列表中删除。 但是,如果从硬盘驱动器中删除该文件(如现在,带有“缺失值”),则不会,但是如果文件位置在硬盘驱动器上发生更改,它将被删除。 我想到了诸如t的位置“改变值”之类的命令,但可惜没有起作用。

我希望我已经足够清楚了。如果没有,我可以尝试更好:)

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

如果要删除自某个日期以来其文件已移至另一个目录的播放列表项,则可以执行以下操作:

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库中删除。

“添加日期”是文件的最后移动或首次建立索引的日期,因此上面的脚本也适用于在指定日期之后由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