更正 iTunes 中的光盘编号元数据和专辑标题

更正 iTunes 中的光盘编号元数据和专辑标题

我有很多 CD,它们都被标记然后以以下格式导入到 iTunes 中:

  • 奶油经典 (碟 1)
  • 奶油经典 (碟 2)
  • 奶油经典 (碟 3)

我想要做的是设置每张专辑的光盘编号(因为 iTunes 有这方面的元数据),然后将专辑重命名为“Cream Classics”。

考虑到我拥有的专辑数量,这是一个非常费力的手动过程。

虽然我可以在 vbscript 中敲入一些东西来自动执行此操作,但我希望这是一个足够常见的问题,有人已经解决了这个问题。

有什么建议么?

答案1

事实证明,编写 vbscript 来修复它并不难。

创建一个新的文本文件,命名为fixdisc.vbs

Option Explicit
Dim oiTunes : Set oiTunes = CreateObject("iTunes.Application")
Dim oLibrary : Set oLibrary = oiTunes.LibraryPlaylist
Dim oTracks : Set oTracks = oLibrary.Tracks
Dim i, oSong, p, sDisk, sNewTitle, iTotal
iTotal = oTracks.Count
For i = 1 To iTotal
    Set oSong = oTracks.Item(i) 
    For p = 1 To 4
        sDisk = " (disc " & p & ")"
        If Instr(1, oSong.Album, sDisk, vbTextCompare) > 0 Then
            sNewTitle = Replace(oSong.Album, sDisk, "", 1, -1, vbTextCompare)
            WScript.Echo i & "/" & iTotal & ": Setting '" & oSong.Album & "' to '" & sNewTitle & "' and disk number to " & p
            ' Remove the ' prefix on the next two lines to actually update the data!
            ' oSong.DiscNumber = p
            ' oSong.Album = sNewTitle
            Exit For
        End If
    Next
Next
Set oSong = Nothing
Set oTracks = Nothing
Set oLibrary = Nothing
Set oiTunes = Nothing

调出命令提示符(使用cmd),导航到脚本的位置并输入:

cscript fixdisc.vbs

脚本会告诉你它将改变哪些专辑但不会做出改变。当您满意时,编辑脚本并'从两行中删除,以便代码如下所示:

            ' Remove the ' prefix on the next two lines to actually update the data!
            oSong.DiscNumber = p
            oSong.Album = sNewTitle
            Exit For
        End If

现在重新运行脚本,任何包含(disc x)(其中 x 是 1 到 4)的曲目都将填充适当的“光盘编号”元数据,并且专辑标题将被更新以删除该字符串。

注意事项/警告

  • 如果你在 Windows 中双击它,那么你将收到大量弹出窗口。因此,请始终从命令行运行。
  • 我还没有完全测试过,使用风险自负!(首先备份你的库)
  • 只有“磁盘 x”可以起作用,如果需要,您可以轻松调整它以支持“磁盘 x”。
  • 仅 1 至 4 号光盘可用,您可以轻松调整它以执行更多操作。
  • 复杂的圆盘编号(例如“北方曝光(圆盘 1:0 度,北)”)将不会被纠正。
  • 这需要花费相当长的时间,而且在更正数据时,iTunes 资料库会不规则地跳动。您的 PC 也会变得有点卡顿。

享受。

相关内容