普通っぽい日記(その2)〜JScriptコンソール〜
JavaScriptコンソール*1はだいぶ前に作っていましたが、JScriptのものがないので作ってみました。
〓JScriptコンソール〓
※拡張子jsで保存
(function() { var stdIn, stdOut, stdErr;
if( (typeof WScript) != "undefined") {
var execFile = WScript.FullName;
if(!execFile) {
WScript.Echo("現在の環境では実行できません。");
} else if( (/^.*cscript\.exe$/i).test(execFile) ) {
main();
} else if( (/^.*wscript\.exe$/i).test(execFile) ) {
open();
} else {
WScript.Echo("現在の環境では実行できません。" + "\n" + execFile);
}
} else if( (typeof window) != "undefined") {
window.alert("WSH(WindowsScriptingHost)用のJScriptコンソールです。");
}
function open() {
var Shell = new ActiveXObject("WScript.Shell");
var str = 'CMD /C CScript //Nologo "' + WScript.ScriptFullName + '"';
for(var i = 0; i < WScript.Arguments.length; i++) {
var arg = WScript.Arguments(i);
if( (typeof arg) == "string") {
if(arg.indexOf(" ", 0) >= 0) {
arg = '"' + arg + '"';
}
str += ' ' + arg;
} else {
break;
}
}
//WScript.Echo(str);
Shell.Run(str);
}
function main() {
stdIn = WScript.StdIn;
stdOut = WScript.StdOut;
stdErr = WScript.StdErr;
while(!stdIn.AtEndOfStream) {
var script;
try {
script = stdIn.ReadLine();
eval(script);
} catch(e) {
if( (/^exit$/i).test(script) || (/^quit$/i).test(script) ) {
break;
} else {
stdErr.WriteLine(e.message);
}
}
}
}
})();
*1:いちいちファイルを作ることなくJavaScriptを実行できるGUI