コンソール実行

提供: MeryWiki
移動先: 案内検索

拡張子からコンソール実行(後継:機能拡張&多言語一括対応)

開いているファイルを各処理系で実行します。
標準でJScript、VBS、Node.js、Ruby、C#、VB.NET、CLISP、SBCLの物を用意します。
対応していない処理系は、上記後継か下記の物を改変してご利用ください。
なお、以下のものは.NET除いて、パスを通すこと前提です。

JScript

// exec_jscript.js

//ファイルの保存
Document.Save();

//タイトル名  Document.Name:現在のファイル名
var TITLE="WSH JScript "+ Document.Name;

//実行コマンド
var EXEC_COMMAND="cscript //nologo //E:JScript "+ Document.Name;

//コンソール実行→停止
var cmd=new ActiveXObject("WScript.Shell");
cmd.Run(
	"cmd /C \""+
	"title "+ TITLE +" & "+
	"cd/d "+ Document.Path + " & "+
	EXEC_COMMAND +" & "+
	"pause > nul & "+
	"exit\"",1
);
cmd=null

VBScript

// exec_vbs.js

//ファイルの保存
Document.Save();

//タイトル名  Document.Name:現在のファイル名
var TITLE="WSH VBScript "+ Document.Name;

//実行コマンド
var EXEC_COMMAND="cscript  //nologo //E:VBScript "+ Document.Name;

//コンソール実行→停止
var cmd=new ActiveXObject("WScript.Shell");
cmd.Run(
	"cmd /C \""+
	"title "+ TITLE +" & "+
	"cd/d "+ Document.Path + " & "+
	EXEC_COMMAND +" & "+
	"pause > nul & "+
	"exit\"",1
);
cmd=null

Node.js

// exec_node.js

//ファイルの保存
Document.Save();

//タイトル名  Document.Name:現在のファイル名
var TITLE="Node.js "+ Document.Name;

//デバッグオプション
//一行目に //debug と加えることでデバッグモードでの実効を行う。
var DEBUG="";
if(0<=Document.GetLine(1).toLowerCase().indexOf("//debug")){
	DEBUG="debug ";
}

//実行コマンド
var EXEC_COMMAND="node "+ DEBUG + Document.Name;

var cmd=new ActiveXObject("WScript.Shell");
cmd.Run(
	"cmd /C \""+
	"title "+ TITLE +" & "+
	"cd/d "+ Document.Path + " & "+
	EXEC_COMMAND +" & "+
	"pause > nul &"+
	"exit\"",1
);
cmd=null

Ruby

// exec_ruby.js

//ファイルの保存
Document.Save();

//タイトル名  Document.Name:現在のファイル名
var TITLE="Ruby "+ Document.Name;

//実行コマンド
var EXEC_COMMAND="ruby "+ Document.Name;

//コンソール実行→停止
var cmd=new ActiveXObject("WScript.Shell");
cmd.Run(
	"cmd /C \""+
	"title "+ TITLE +" & "+
	"cd/d "+ Document.Path + " & "+
	EXEC_COMMAND +" & "+
	"pause > nul & "+
	"exit\"",1
);
cmd=null

CLISP

// exec_clisp.js

//ファイルの保存
Document.Save();

//タイトル名  Document.Name:現在のファイル名
var TITLE="CLISP "+ Document.Name;

//コンパイルオプション
//デフォルトではインタプリタとして実行する。
//一行目に ;fas と加えることでfasファイルにコンパイルを行う。
var COMPILE="";
if(0<=Document.GetLine(1).toLowerCase().indexOf(";fas")){
	COMPILE="-c ";
}

//実行コマンド
var EXEC_COMMAND="clisp "+ COMPILE + Document.Name;

//コンソール実行→停止
var cmd=new ActiveXObject("WScript.Shell");
cmd.Run(
	"cmd /C \""+
	"title "+ TITLE +" & "+
	"cd/d "+ Document.Path + " & "+
	EXEC_COMMAND +" & "+
	"pause > nul & "+
	"exit\"",1
);
cmd=null

SBCL

// exec_sbcl.js

//ファイルの保存
Document.Save();

//タイトル名  Document.Name:現在のファイル名
var TITLE="SBCL "+ Document.Name;

//実行コマンド
var EXEC_COMMAND="sbcl --script "+ Document.Name;

//コンソール実行→停止
var cmd=new ActiveXObject("WScript.Shell");
cmd.Run(
	"cmd /C \""+
	"title "+ TITLE +" & "+
	"cd/d "+ Document.Path + " & "+
	EXEC_COMMAND +" & "+
	"pause > nul & "+
	"exit\"",1
);
cmd=null

C#

// exec_cs.js

//ファイルの保存
Document.Save();

//タイトル名  Document.Name:現在のファイル名
var TITLE="C# "+ Document.Name;

//コンパイルファイル選択
//デフォルトでフォルダ内全てをコンパイル。
//一行目に //only と加えることでそのファイルのみコンパイルを行う。
var PKG_FILES="*.cs";
if(0<=Document.GetLine(1).toLowerCase().indexOf("//only")){
	PKG_FILES=Document.Name;
}

//実行ファイル名
var exe_names=Document.Name.split(".");
exe_names.pop();
var EXE_NAME=exe_names.join(".");

//実行コマンド
//削除→コンパイル→実行
var EXEC_COMMAND=
	"del "+ EXE_NAME +".exe & "+
	"%SYSTEMROOT%\\Microsoft.NET\\Framework\\v4.0.30319\\csc /nologo /out:"+
		EXE_NAME +".exe "+ PKG_FILES +" /optimize+ & "+
	EXE_NAME +".exe";

var cmd=new ActiveXObject("WScript.Shell");
cmd.Run(
	"cmd /C \""+
	"title "+ TITLE +" & "+
	"cd/d "+ Document.Path + " & "+
	EXEC_COMMAND +" & "+
	"pause > nul &"+
	"exit\"",1
);
cmd=null

VB.NET

// exec_vb.js

//ファイルの保存
Document.Save();

//タイトル名  Document.Name:現在のファイル名
var TITLE="VB.NET "+ Document.Name;

//コンパイルファイル選択
//デフォルトでフォルダ内全てをコンパイル。
//一行目に 'only と加えることでそのファイルのみコンパイルを行う。
var PKG_FILES="*.vb";
if(0<=Document.GetLine(1).toLowerCase().indexOf("'only")){
	PKG_FILES=Document.Name;
}

//実行ファイル名
var exe_names=Document.Name.split(".");
exe_names.pop();
var EXE_NAME=exe_names.join(".");

//実行コマンド
//削除→コンパイル→実行
var EXEC_COMMAND=
	"del "+ EXE_NAME +".exe & "+
	"%SYSTEMROOT%\\Microsoft.NET\\Framework\\v4.0.30319\\vbc /nologo /out:"+
		EXE_NAME +".exe "+ PKG_FILES +" /optimize+ & "+
	EXE_NAME +".exe";


var cmd=new ActiveXObject("WScript.Shell");
cmd.Run(
	"cmd /C \""+
	"title "+ TITLE +" & "+
	"cd/d "+ Document.Path + " & "+
	EXEC_COMMAND +" & "+
	"pause > nul &"+
	"exit\"",1
);
cmd=null