我搜遍了StackOverflow和互联网的其他部分,到目前为止,我找不到什么可以帮助解决我的问题。
我的问题是在iTunes中我有大约220首歌曲被列为“艺术家名称 - 歌曲名称”(例如“Modest Mouse - Dramamine”),我想知道是否有任何方法可以编写Ruby在连字符(“Dramamine”)成为歌曲标题和连字符(“Modest Mouse”)成为艺术家之前的单词之后,将在iTunes中正确地将这些单词更改为正确列出的脚本。
此外,如果有任何程序可以实现相同的目标,我们将不胜感激,如果有人可以共享一个链接,但是,如果有人能指出我可以学习如何批量扫描和更改文件名的地方。然后Ruby将这些歌曲变化放入iTunes可以阅读和显示的歌曲中,然后也会非常感激。谢谢!
答案 0 :(得分:0)
查看Regex和File Ruby库以及Dir。他们为您提供工作的工具。
例如,
Dir["path/to/your/music/*.m4a"].each do |filename|
m = File.basename(filename).match(/(.+)-(.+)/)
artist = m[1].strip # remove leading and trailing blanks
song = m[2].strip
new_filename = song + ' - ' + artist
File.rename(filename, "path/to/your/music/#{new_filename}.m4a"
|end|
还有其他一些技巧,例如你可以使用反向标记(`,而不是')通过用以下代码替换块中的最后一行来进行文件重命名:
`mv #{filename} path/to/your/music/#{new_filename}.m4a`
这将在Unix shell中运行mv命令。
祝你好运摆弄!没有什么比通过反复试验学习更好了!