起動時にWScriptからCScriptへ自動で切り替える(JScript)

ExplorerからWSHの.jsファイルをダブルクリックするとwscript.exeで起動されるが、cscript.exeで起動したい場合も多い。

そこでwscriptで起動した場合に、引数を含めてcscriptで起動し直すスニペットを作成した。

以下のコードを.jsファイルの先頭部分に配置すればOK。 即時関数で括ってあるのでグローバルな環境を汚染せず、他の箇所に影響しないようにしている。

// WScriptで起動時にCScriptに変更
(function(){
  if(WScript.FullName.match(/WScript\.exe$/i)){
    var wshell = new ActiveXObject("WScript.Shell");
    var cmd = ["cscript", "\"" + WScript.ScriptFullName + "\""];
   
    for(var i = 0; i < WScript.Arguments.Count(); i++){
      cmd.push("\"" + WScript.Arguments.Item(i) + "\"");
    }
    wshell.Run(cmd.join(" "), 1, false);
    WScript.Quit();
  }
})();