↓ソースコード
/*********************************************************************
* PV Sum version 0.0
* 使い方:集計対象csvを格納したフォルダをドラッグ&ドロップする。
* 
* ・指定できるフォルダは1フォルダのみ
* ・対象フォルダ内に入れられたファイルに対してのみ処理が走る
* ・csvファイルの形式チェックは未実装
* ・ソート機能は未実装
* ・結果ファイルの出力先は対象フォルダと同階層のフォルダ
*********************************************************************/

var f, fw, line, ls;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var d = new ActiveXObject("Scripting.Dictionary");

var objParm = WScript.arguments;

line = 1;
try
{
	// 複数フォルダには未対応
	if(objParm.length!=1)
	{
		var emsg = "";
		objParm.length==0 ? emsg="対象が指定されていません。" : emsg="複数フォルダには対応していません。";
		throw new Error(emsg);
	}
	
	var folder = fso.GetFolder(objParm(0));
	var em = new Enumerator(folder.Files);
	var w, k, s, ss;
	
	for(em.moveFirst(); !em.atEnd(); em.moveNext())
	{
		// 読み取り専用でファイルオープン
		f = fso.OpenTextFile(em.item().Path, 1);
		
		// 6行目まで読み飛ばし
		for(line=1; line<=6; line++)
		{ 
			f.SkipLine();
		}
	
		// PV集計
		for(; line<=26; line++)
		{
			// 1行読込
			s = f.ReadLine();
			
			// 20件ない場合も考え得るのでbreak措置
			if(s=="※上位20件を表示しております。,")
			{
				break;
			}
			
			// 辞書に格納
			ss = s.split(",");
			if(d.Exists(ss[1]))
			{
				// Keyが存在する場合
				// PV値を加算
				d.Item(ss[1]) = parseInt(d.Item(ss[1])) + parseInt(ss[5]);
			}
			else
			{
				// Keyが存在しない場合
				// 辞書に追加
				d.add(ss[1],parseInt(ss[5]));
			}
		}
    }
    
	//WScript.echo(d.Count);
	
	w = d.Keys().toArray();
	k = d.Items().toArray();
	
	// 上書きモードでファイルオープン
	fw = fso.CreateTextFile(folder.ParentFolder + "\\output_" + folder.Name + ".csv", true);
	
	// 書き込み
	fw.WriteLine("ページ名,PV数");
	for(i in w)
	{
		fw.WriteLine(w[i] + "," + k[i]);
	}
}
catch(e)
{
	// エラーを表示
	WScript.echo(e.message);
}
finally
{
	// ファイルクローズ
	if(f!=null)
	{
		f.Close();
	}
	if(fw!=null)
	{
		fw.Close();
	}
	
	// オブジェクトの開放
	objParm = null;
	fso = null;
	d = null;
	f = null;
	fw = null;
	
	WScript.echo("終了");
}