【问题标题】:Mass Scanning and Renaming of File Names文件名的批量扫描和重命名
【发布时间】:2012-08-14 00:06:41
【问题描述】:

我搜索了整个 StackOverflow 和互联网的其他部分,到目前为止,我没有发现任何可以帮助解决我的问题的东西。

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

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

【问题讨论】:

  • 递归目录扫描和 MP3 库(如 ruby​​-mp3info、taglib-ruby 等)的例子很多。您具体有什么问题?

标签: ruby itunes finder file-rename


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-20
    • 2013-12-19
    • 1970-01-01
    • 2018-04-26
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    相关资源
    最近更新 更多