ファイル名の拡張子を変換

ファイル操作をするスクリプトを書くと、ファイル名の拡張子だけ変えたファイル名を作りたいことがよくある。すぐに思いつくのは、ファイル名の最後のピリオド"."のインデックスを探して(StingのlastIndex())、substringを作る方法だけど、正規表現とStringのreplace()メソッドを使えば一行で書ける。

// changeExtension.js: ファイル名の拡張子を変換する
var fileName = WScript.Arguments(0);
var extension =  WScript.Arguments(1);

var newFileName = fileName.replace(/\.[^.]+$|$/, "." + extension); // 拡張子を変換

WScript.Echo(newFileName);

これを使って、昨日のsaveAsCsv.jsを書き直しました。