我有很多 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 也会变得有点卡顿。
享受。