iTunesの曲名に含まれる'_'を半角スペースに置換するスクリプト

私のライブラリには曲名に半角スペースの変わりに'_'が入っているものが500曲ぐらいありました。

Lyrics Master - iPhone / iTunes / iPod で歌詞を楽しもう! というソフトウェアの存在を知り使ってみたのですが、

  1. タイトルが正しいほうがよい。
  2. サンプルのスクリプトがあった。

ので、スクリプトを書いてみました。
jscriptというのは初めてですが、replaceの引数が正規表現なのが面白かったです。

Windowsjscriptです。

/*
 *	
 *	曲名に含まれる'_'を' 'に置換する。
 *	
 */

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("ログ出力完了");