
欢迎来到 TechNet 专栏,在这里,Microsoft 脚本专家将为您解答与系统管理脚本编写有关的各种常见问题。如果遇到系统管理脚本编写方面的问题,请将电子邮件发送到 scripter@microsoft.com。我们不能保证回答收到的所有问题,但是我们将尽最大的努力。
同时,不要忘了查看您好,脚本专家!存档。
今日问题:如何更改 .WMA 文件的 Title 属性?
您好,脚本专家!如何更改 .WMA 文件的 Title 属性?
-- LL
您好,LL。为您讲一件琐事。最初,甲壳虫乐队的经典作品 Yesterday 的名称为 Scrambled Eggs。(开始演唱这首歌,但是演唱的不是“Yesterday”而是“Scrambled eggs”。)但是,在该乐队录制这首歌之前,Paul 写了一些抒情歌曲,而且在该过程中,也更改了歌名。其他的事情,如他们所说,已经是过去的事了。
毫无疑问,您的下一个问题是:Paul McCartney 是使用脚本来更改 Scrambled Eggs 的名称吗?说实话,我们不知道;我们一直想问 Paul 这个问题,但是每次我们聚会时似乎都会出现某些事情,使得我们忘记提出这一问题。但是,无疑他本可以使用如下的脚本来更改歌名:
Set objPlayer = CreateObject("WMPlayer.OCX" )
Set objMediaCollection = objPlayer.MediaCollection
Set objTempList = objMediaCollection.getByName("Scrambled Eggs")
Set objSong = objTempList.Item(0)
objSong.setItemInfo "Name", "Yesterday"
在进一步探讨之前,我们必须指出此脚本可以更改的歌名仅限于与 Windows Media Player 相关的歌曲。在 Windows Media Player 中查看歌曲列表时,以前通常所说的歌曲 Scrambled Eggs 现在将显示为 Yesterday。但是,此脚本不会更改 .WMA 文件本身:该文件名仍然与先前一样,如果右键单击该文件,然后查看 Summary Properties,该名称仍然显示为 Scrambled Eggs。遗憾的是,我们不知道如何更改文件本身的 Title 属性;但我们可以尽力更改歌名在 Windows Media Player 中的显示方式。
注意:那是什么?您甚至还不知道您可以编写 Windows Media Player 的脚本吧?您还未曾访问过 Scripto 博士的娱乐空间,是吗? |
如果您仅需更改在 Windows Media Player 中出现的歌曲,那么,请继续阅读。如您所见,我们的脚本先是创建一个 WMPlayer.OCX 对象的实例;这仅是一个提供到 Windows Media Player 的可编程访问的对象。然后,使用这两行代码绑定到 Windows Media Player 媒体集合,并返回所有歌名中包含 Scrambled Eggs 的歌曲的列表:
Set objMediaCollection = objPlayer.MediaCollection
Set objTempList = objMediaCollection.getByName("Scrambled Eggs")
是的,我们确实需要返回一个集合:这是因为 Windows Media Player 实际上允许多首歌曲使用相同的歌名。我们将假定您为所有歌曲起了唯一的歌名;这使我们可以在绑定到该歌曲并更改其歌名时走一些捷径。如果您确实有多首歌曲都使用歌名 Scrambled Eggs,则可以使用这个修改的脚本更改这些歌曲中每一首歌曲的歌名:
Set objPlayer = CreateObject("WMPlayer.OCX" )
Set objMediaCollection = objPlayer.MediaCollection
Set objTempList = objMediaCollection.getByName("Scrambled Eggs")
For i = 0 to objTempList.Count - 1
Set objSong = objTempList.Item(i)
objSong.setItemInfo "Name", "Yesterday"
Next
现在,返回到我们假定仅有一首名为 Scrambled Eggs 的歌曲的脚本中。如果情况如此,我们仅需要这行代码来直接绑定到具有该歌名的那一首歌曲(完全忽略必须在前一脚本中使用的 For Next 循环):
Set objSong = objTempList.Item(0)
建立了该连接之后,更改歌名即会变得与使用 setItemInfo 方法将歌曲 Name 更改为 Yesterday 一样简单:
objSong.setItemInfo "Name", "Yesterday"
其他的事情,如他们所说,已经是过去的事了。
顺便说一下,脚本专家也更喜欢歌名 Scrambled Eggs;如果没有其他原因,该歌名很适合歌曲 I Am the Walrus (“I am the egg man, they are the egg men”)。但是甲壳虫乐队从未问过脚本专家关于此事的意见。我们只是希望即使没有我们的帮助,他们的事情也会有好结果。
欢迎访问您好,脚本专家!- 存档