iTunesの曲名に含まれる'_'を半角スペースに置換するスクリプト
私のライブラリには曲名に半角スペースの変わりに'_'が入っているものが500曲ぐらいありました。
Lyrics Master - iPhone / iTunes / iPod で歌詞を楽しもう! というソフトウェアの存在を知り使ってみたのですが、
- タイトルが正しいほうがよい。
- サンプルのスクリプトがあった。
ので、スクリプトを書いてみました。
jscriptというのは初めてですが、replaceの引数が正規表現なのが面白かったです。
/* * * 曲名に含まれる'_'を' 'に置換する。 * */ var orgTitle = "", newTitle = ""; var logMsg = ""; var iTunesApp = WScript.CreateObject("iTunes.Application"); var tracks = iTunesApp.LibraryPlayList.Tracks; /* * 特定のプレイリストから曲を取得する場合はこう書く。 * * var iTmainLibrary = iTunesApp.LibrarySource.Playlists.ItemByName("プレイリスト名"); * var tracks = iTmainLibrary.Tracks; */ for(var i=1; i<=tracks.Count; i++){ var curTrack = tracks.item(i); // 曲名は .Name orgTitle = curTrack.Name; // '_' が含まれない場合、.indexOf の戻り値は-1 if (orgTitle.indexOf("_") > 0){ // replace の第一引数は正規表現。 /_/g は'_'を全て、という意味。 newTitle = orgTitle.replace(/_/g," "); // .Location は曲のファイルパス。 logMsg = logMsg + curTrack.Location + "\t" + orgTitle + "\t" + newTitle + "\n"; // 曲名の更新。 curTrack.Name = newTitle; } } // ログファイルの書き込み。 var fso = new ActiveXObject("Scripting.FileSystemObject"); var a = fso.CreateTextFile("D:\\log2.xls", true); a.WriteLine(logMsg); a.Close(); WScript.Echo("ログ出力完了");