WSHを使ってMozillaでHTMLファイルを開く

Dim Browser, ObjArgs, StrPath, WshShell

Browser = "C:\Program Files\Mozilla\mozilla.exe"

Set ObjArgs = WScript.Arguments
StrPath = ObjArgs(0)
StrPath = Replace(StrPath, "\", "/")
StrPath = Replace(StrPath, " ", "%20")
StrPath = "file:///" + StrPath

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run Chr(34) & Browser & Chr(34) & " -url " & StrPath

Set ObjArgs = Nothing
Set WshShell = Nothing
WScript.Quit

なんとなく書いてみる。

いや、MozillaにはURLを一部エスケープする必要があるので、作ったんですが、JScript使えば一発じゃんということを数時間後に思ったりする。が、そうでもないことに気づく。

var Browser, ObjArgs, StrPath, WshShell;

Browser = "C:\\Program Files\\Mozilla\\mozilla.exe";

ObjArgs = WScript.Arguments;
StrPath = ObjArgs(0);
StrPath = StrPath.replace(/\\/g, "\/");
StrPath = encodeURI(StrPath);
StrPath = "file:///" + StrPath;

WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("\"" + Browser + "\" -url " + StrPath);

WScript.Quit();

まーJScriptの方が確実だな。VBScriptの方は空白しかエスケープしてないし(よくよく考えるとインチキだ)。