wshで全角変換

かなり特殊要件でしか使わないであろうスクリプトを wsh (JScript)で組んでみた。半角カナ英数記号を全角に置換します。
ネイティブWindowsで使えるのがややいいところ。
※全部半角変換もできたので再度うp
var arKanaHan = ("。「」、・ヲァィゥェォャュョッー" +
		 "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚").split("");
var arKanaZen = ("。「」、・ヲァィゥェォャュョッー" + 
		 "アイウエオカキクケコサシスセソタ" +
		 "チツテトナニヌネノハヒフヘホマミムメモ" + 
		 "ヤユヨラリルレロワン゛°").split("");
var arKanaHanTmp = ("ウ゛ カ゛ キ゛ ク゛ ケ゛ コ゛ サ゛ シ゛ ス゛ " + 
		    "セ゛ ソ゛ タ゛ チ゛ ツ゛ テ゛ ト゛ ハ゛ ヒ゛ " + 
		    "フ゛ ヘ゛ ホ゛ ハ° ヒ° フ° ヘ° ホ°").split(" ");
var arKanaZenAll = ("ヴガギグゲゴザジズゼゾダヂヅデド" + 
		    "バビブベボパピプペポ").split("");
var arAscHan = ("!\"#$%&\'()*+,-./0123456789:;<=>?" + 
		"@ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
		"abcdefghijklmnopqrstuvwxyz{|}~\\ ").split("");
var arAscZen = ("!”#$%&’()*+,-./" + 
		"0123456789:;<=>?@" +
		"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +
		"abcdefghijklmnopqrstuvwxyz" + 
		"{|}~¥ ").split("");

// 使用例
t = "abcabc((a((()))\"\"\"||| ) ))グバビビビプププ";
WScript.Echo("元:" + t + "\r\n全:" + toZen(t) + "\r\n半:" + toHan(t));

function toHan(s){
	var newstr = s;
	var re = new RegExp();
	for(key in arAscZen){
	    re = RegExp(arAscZen[key], "g");
	    newstr = newstr.replace(re, arAscHan[key]);
	}
	for(key in arKanaZenAll){
	    re = RegExp(arKanaZenAll[key], "g");
	    newstr = newstr.replace(re, arKanaHanTmp[key]);
	}
	for(key in arKanaZen){
	    re = RegExp(arKanaZen[key], "g");
	    newstr = newstr.replace(re, arKanaHan[key]);
	}
	return newstr;
}

function toZen(s){
	var newstr = s;
	var re = new RegExp();
	for(key in arKanaHan){
	    re = RegExp(arKanaHan[key], "g");
	    newstr = newstr.replace(re, arKanaZen[key]);
	}

	for(key in arKanaHanTmp){
	    re = RegExp(arKanaHanTmp[key], "g");
	    newstr = newstr.replace(re, arKanaZenAll[key]);
	}
	for(key in arAscHan){
	    if(arAscHan[key].match(/[\(\)\\\+\*\?\{\}\.\^\$\|]/)){
		re = RegExp("\\" + arAscHan[key], "g");
	    }else{
		re = RegExp(arAscHan[key], "g");
	    }
	    newstr = newstr.replace(re, arAscZen[key]);
	}
	return newstr;
}
comp | - | -