2012-08-14 28 views
0

我已經搜索了所有的StackOverflow和互聯網的其他部分,到目前爲止我沒有發現任何可以幫助解決我的問題。大量掃描和重命名文件名

我的問題是,在iTunes中,我有大約220首歌曲被列爲「藝術家名稱 - 歌名」(例如「Modest Mouse - Dramamine」),我想知道是否有任何方法可以編寫Ruby腳本會將這些變成在iTunes中使用連字符(「Dramamine」)成爲歌曲標題後的單詞以及連字符(「Modest Mouse」)成爲藝術家之前的單詞來正確列出。另外,如果有任何程序可以實現相同的目標,那麼可以肯定的是,如果有人可以共享鏈接,但是,如果任何人都可以指向我可以學習如何批量掃描並更改文件名的地方在Ruby中,然後將這些歌曲的變化放入iTunes可以讀取並顯示的歌曲中,然後我們將不勝感激。謝謝!

+0

遞歸目錄掃描和MP3庫有很多例子(比如ruby-mp3info,taglib-ruby等)。你有什麼特別的問題? – 2012-08-14 00:12:32

回答

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

祝你好運擺弄!沒有什麼比通過試驗和錯誤學習更好!