批量扫描和重命名文件名

时间:2012-08-14 00:06:41

标签: ruby itunes finder file-rename

我搜遍了StackOverflow和互联网的其他部分,到目前为止,我找不到什么可以帮助解决我的问题。

我的问题是在iTunes中我有大约220首歌曲被列为“艺术家名称 - 歌曲名称”(例如“Modest Mouse - Dramamine”),我想知道是否有任何方法可以编写Ruby在连字符(“Dramamine”)成为歌曲标题和连字符(“Modest Mouse”)成为艺术家之前的单词之后,将在iTunes中正确地将这些单词更改为正确列出的脚本。

此外,如果有任何程序可以实现相同的目标,我们将不胜感激,如果有人可以共享一个链接,但是,如果有人能指出我可以学习如何批量扫描和更改文件名的地方。然后Ruby将这些歌曲变化放入iTunes可以阅读和显示的歌曲中,然后也会非常感激。谢谢!

1 个答案:

答案 0 :(得分:0)

查看RegexFile 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命令。

祝你好运摆弄!没有什么比通过反复试验学习更好了!