[WScript]テキストファイルをD&Dしたら、処理してメモ帳に出力してくれるスクリプト
- 2007-07-10
- カテゴリ: その他のプログラミング
- タグ: WScript JavaScript Tips
大学の授業で必要になって作ったので公開。
複数のテキストファイルをドラッグ&ドロップしたら、その内容を適当な関数で処理して、その結果をTempフォルダに吐き出してメモ帳で表示するスクリプト。
(function(main) {
var fso = WScript.CreateObject('Scripting.FileSystemObject');
var result = '';
for (var args = new Enumerator(WScript.Arguments); !args.atEnd(); args.moveNext())
result += main(fso.OpenTextFile(args.item(), 1).ReadAll(), args.item());
var tmpFile = fso.GetSpecialFolder(2) + '\\' + Math.random();
fso.CreateTextFile(tmpFile);
fso.OpenTextFile(tmpFile, 2).Write(result);
WScript.CreateObject('WScript.Shell').Run('notepad.exe ' + tmpFile);
})(function(text, path) {
return path + '\t' + text.replace(/[\t\r\n]/g, '').substr(0, 80) + '\r\n';
});
大学の授業で、テキストファイルとして吐き出されたデータをエクセルに貼り付ける必要に迫られて作った。コマンドラインを使えば、別にわざわざWScriptを使ったりする必要性はないんだけど、コンピュータにあまり詳しくない人に使わせることが多くなると思ったから、こんなインターフェースのものになった。
無名関数の定義部分が今回作ったスクリプトの本体で、無名関数に引数として渡されている関数が、テキストファイルの中身を処理するコールバック関数。
コールバック関数は、ドラッグ&ドロップしたテキストファイルごとに呼ばれて、第1引数にはテキストファイルの中身が、第2引数にはテキストファイルへのパスが渡される。コールバック関数の返り値は変数に追記されていって、最後にメモ帳の中身として出力される。
サンプルとして書いた、
function(text, path) {
return path + '\t' + text.replace(/[\r\n]/g, '').substr(0, 80) + '\r\n';
}
という関数は、ファイルのパスと、内容を80字に丸めたものを1行ごとに吐き出すための関数。
トラックバックURL
- http://liosk.blog103.fc2.com/tb.php/21-42505710

