「拡張子からコンソール実行」の版間の差分
ナビゲーションに移動
検索に移動
YOS G-spec (トーク | 投稿記録) |
YOS G-spec (トーク | 投稿記録) 編集の要約なし |
||
| 7行目: | 7行目: | ||
== [[File:拡張子でコンソール実行.png]] 対応済み言語一覧 == | == [[File:拡張子でコンソール実行.png]] 対応済み言語一覧 == | ||
JavaScript(Node.js、JScript、JScript.NET) | JavaScript(Node.js、JScript、JScript.NET)、TypeScript、CoffeeScript、VBScript、<br> | ||
Ruby、Perl、Python(PyPy)、Lua(JIT)、C#、VB.NET、PowerShell、CommonLisp(CLISP、SBCL、MKCL)<br> | |||
Scheme(Gauche)、C,C++(VC++、BCC32、G++)、D、Go、Pascal、Fortran、CASL II、BAT<br> | |||
<br> | <br> | ||
※ただし、基本的にはパスが通っていることが前提。<br> | ※ただし、基本的にはパスが通っていることが前提。<br> | ||
== [[File:拡張子でコンソール実行.png]] ZIP【2016/04/28更新】 == | |||
[[File:拡張子でコンソール実行inマクロ.zip]]<br> | |||
変換済みicoファイル込 | |||
== [[File:拡張子でコンソール実行.png]] アイコン == | |||
[[File:拡張子でコンソール実行.png]] | |||
== [[File:拡張子でコンソール実行.png]] ソース == | == [[File:拡張子でコンソール実行.png]] ソース == | ||
| 37行目: | 44行目: | ||
'JavaScript | 'JavaScript | ||
Case "js" | Case "js" | ||
ENGINE="node" | 'ENGINE="node" | ||
ENGINE="jscript" | |||
'ENGINE="jsc" | 'ENGINE="jsc" | ||
'Python | 'Python | ||
| 54行目: | 61行目: | ||
'LISP, CommonLisp | 'LISP, CommonLisp | ||
Case "l","lisp","lsp" | Case "l","lisp","lsp" | ||
ENGINE="clisp" | |||
ENGINE="sbcl" | ENGINE="sbcl" | ||
'ENGINE="mkcl" | 'ENGINE="mkcl" | ||
| 62行目: | 69行目: | ||
'ENGINE="bcc32" | 'ENGINE="bcc32" | ||
ENGINE="g++" | ENGINE="g++" | ||
'************** Path設定 ************** | |||
'TypeScript | |||
Case "ts" | |||
ENGINE="%ProgramFiles%\Microsoft SDKs\TypeScript\1.0" | |||
'ENGINE="%APPDATA%\npm" | |||
'CoffeeScript | |||
Case "coffee" | |||
ENGINE="%APPDATA%\npm" | |||
'C# | |||
Case "cs" | |||
'cscのパス | |||
'ENGINE="%ProgramFiles%\MSBuild\12.0\Bin" | |||
'ENGINE="%ProgramFiles%\MSBuild\14.0\Bin" | |||
ENGINE="%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319" | |||
'VB.NET | |||
Case "vb" | |||
'vbcのパス | |||
ENGINE="%ProgramFiles%\MSBuild\12.0\Bin" | |||
'ENGINE="%ProgramFiles%\MSBuild\14.0\Bin" | |||
'ENGINE="%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319" | |||
'F# | |||
Case "fs" | |||
'fscのパス | |||
ENGINE="%ProgramFiles%\Microsoft SDKs\F#\3.1\Framework\v4.0" | |||
'CASL II | 'CASL II | ||
Case "cas" | Case "cas" | ||
'jarのパス | 'jarのパス | ||
ENGINE="%HOMEDRIVE%\javaCASL2 | ENGINE="%HOMEDRIVE%\javaCASL2" | ||
End Select | End Select | ||
End Function | End Function | ||
| 73行目: | 106行目: | ||
'コマンドオプション | 'コマンドオプション | ||
Dim CMD_OPTION | Dim CMD_OPTION | ||
'ビルドメッセージ | |||
Dim BUILDED | |||
BUILDED=" & Echo Complited." | |||
Dim doc_names:doc_names=Split(Document.Name,".") | Dim doc_names:doc_names=Split(Document.Name,".") | ||
| 85行目: | 121行目: | ||
DOC_NAME=Mid(DOC_NAME,1,Len(DOC_NAME)-1) | DOC_NAME=Mid(DOC_NAME,1,Len(DOC_NAME)-1) | ||
'タイトル、実行コマンド | |||
Select Case LCase(file_format) | Select Case LCase(file_format) | ||
Case "js" 'JavaScript | Case "js" 'JavaScript | ||
| 108行目: | 145行目: | ||
TITLE="JScript.NET "+ Document.Name | TITLE="JScript.NET "+ Document.Name | ||
EXEC_COMMAND= _ | EXEC_COMMAND= _ | ||
"%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\jsc /nologo /out:" & _ | """%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\jsc"" /nologo /out:" & _ | ||
DOC_NAME & ".exe " & PKG_FILES & " & " & _ | DOC_NAME & ".exe " & PKG_FILES & " & " & _ | ||
DOC_NAME & ".exe" | DOC_NAME & ".exe" | ||
End Select | End Select | ||
Case "ts" 'TypeScript | |||
TITLE="TypeScript to " & ENGINE("js") & " " & Document.Name | |||
EXEC_COMMAND="""" & ENGINE(file_format) & "\tsc"" " & Document.Name | |||
EXEC_COMMAND=EXEC_COMMAND & " & " | |||
'エンジン選択 | |||
Select Case ENGINE("js") | |||
Case "node" 'Node.js | |||
EXEC_COMMAND=EXEC_COMMAND & _ | |||
"node " & " " & DOC_NAME & ".js" | |||
Case "jscript" 'JScript | |||
EXEC_COMMAND=EXEC_COMMAND & _ | |||
"cscript //nologo //E:JScript " & DOC_NAME & ".js" | |||
Case "jsc" 'JScript.NET | |||
'非対応? | |||
End Select | |||
Case "coffee" 'CoffeeScript | |||
'コンパイルオプション | |||
'一行目に #js と加えることでコンパイルを行う。 | |||
If load_option("#js") Then | |||
CMD_OPTION="--compile" | |||
Else | |||
CMD_OPTION="" | |||
BUILDED="" | |||
End If | |||
TITLE="CoffeeScript " & Document.Name | |||
EXEC_COMMAND="""" & ENGINE(file_format) & "\coffee"" " & CMD_OPTION & " " & Document.Name & BUILDED | |||
Case "vbs" 'VBScript | Case "vbs" 'VBScript | ||
| 175行目: | 245行目: | ||
EXEC_COMMAND= _ | EXEC_COMMAND= _ | ||
"del " & DOC_NAME & ".exe & " & _ | "del " & DOC_NAME & ".exe & " & _ | ||
" | """" & ENGINE(file_format) & "\csc""" & _ | ||
" /nologo /out:" & DOC_NAME & ".exe " & PKG_FILES & " /optimize+ & " & _ | |||
DOC_NAME & ".exe" | DOC_NAME & ".exe" | ||
| 191行目: | 261行目: | ||
TITLE="VB.NET "+ Document.Name | TITLE="VB.NET "+ Document.Name | ||
EXEC_COMMAND= _ | EXEC_COMMAND= _ | ||
" | """" & ENGINE(file_format) & "\vbc""" & _ | ||
" /nologo /out:" & DOC_NAME & ".exe " & PKG_FILES & " /optimize+ & " & _ | |||
DOC_NAME & ".exe" | |||
Case "fs" 'F# | |||
PKG_FILES=Document.Name | |||
TITLE="F# "+ Document.Name | |||
EXEC_COMMAND= _ | |||
"""" & ENGINE(file_format) & "\fsc""" & _ | |||
" --nologo --out:" & DOC_NAME & ".exe " & PKG_FILES & " --optimize+ & " & _ | |||
DOC_NAME & ".exe" | DOC_NAME & ".exe" | ||
| 198行目: | 277行目: | ||
TITLE="PowerShell " & Document.Name | TITLE="PowerShell " & Document.Name | ||
EXEC_COMMAND="powershell " & Document.Name | EXEC_COMMAND="powershell " & Document.Name | ||
Case "c","cpp" 'C, C++ | |||
Select Case ENGINE(file_format) | |||
Case "cl" | |||
TITLE="Visual C++ " & Document.Name | |||
EXEC_COMMAND="cl " & Document.Name & " & " & DOC_NAME & ".exe" | |||
Case "bcc32" | |||
TITLE="Borland C++ " & Document.Name | |||
EXEC_COMMAND="bcc32 " & Document.Name & " & " & DOC_NAME & ".exe" | |||
Case "g++" | |||
TITLE="GNU GCC C++ " & Document.Name | |||
EXEC_COMMAND="g++ " & Document.Name & " & " & DOC_NAME & ".exe" | |||
End Select | |||
Case "d" 'D言語 | |||
TITLE="D言語 " & Document.Name | |||
EXEC_COMMAND="dmd " & Document.Name & " & " & DOC_NAME & ".exe" | |||
Case "go" 'Golang | |||
'コンパイルオプション | |||
'一行目に//buildでビルドを行う。 | |||
If load_option("//build") Then | |||
CMD_OPTION="build" | |||
Else | |||
CMD_OPTION="run" | |||
End If | |||
TITLE="Go " & Document.Name | |||
EXEC_COMMAND="go " & CMD_OPTION & " " & Document.Name | |||
Case "l","lisp","lsp" 'LISP, CommonLisp | Case "l","lisp","lsp" 'LISP, CommonLisp | ||
| 223行目: | 331行目: | ||
me_paths(UBound(me_paths))="" | me_paths(UBound(me_paths))="" | ||
'Macrosフォルダのパス取得 | 'Macrosフォルダのパス取得 | ||
Dim me_path:me_path=Join(me_paths,"\") & "Macros\" | Dim me_path:me_path=Join(me_paths,"\") & "Macros\exec_cmd\" | ||
CMD_OPTION=me_path & "exec_sbcl_comp.lisp" | CMD_OPTION=me_path & "exec_sbcl_comp.lisp" | ||
| 243行目: | 351行目: | ||
CMD_OPTION="-not-fasl-p -compile " & Document.Name & " & " & _ | CMD_OPTION="-not-fasl-p -compile " & Document.Name & " & " & _ | ||
"timeout /t 1 > nul & " &_ | "timeout /t 1 > nul & " &_ | ||
"mkcl -o " & DOC_NAME & ".exe -link " & DOC_NAME & ".o" | "mkcl -o " & DOC_NAME & ".exe -link " & DOC_NAME & ".o" & _ | ||
BUILDED | |||
'mkcl -not-fasl-p -compile a.lisp & mkcl -o a.exe -link a.o | 'mkcl -not-fasl-p -compile a.lisp & mkcl -o a.exe -link a.o | ||
'exe化失敗を防ぐためにwaitの小細工 | 'exe化失敗を防ぐためにwaitの小細工 | ||
| 257行目: | 366行目: | ||
TITLE="Gauche " & Document.Name | TITLE="Gauche " & Document.Name | ||
EXEC_COMMAND="gosh " & Document.Name | EXEC_COMMAND="gosh " & Document.Name | ||
Case "pas","pp" 'PASCAL | Case "pas","pp" 'PASCAL | ||
| 297行目: | 377行目: | ||
Case "cas" 'CASL II | Case "cas" 'CASL II | ||
TITLE="JAVA CASL II " & Document.Name | TITLE="JAVA CASL II " & Document.Name | ||
EXEC_COMMAND="java -jar " & ENGINE(file_format) & "casl2.jar " & Document.Name & " & " & _ | EXEC_COMMAND="java -jar " & ENGINE(file_format) & "\casl2.jar " & Document.Name & " & " & _ | ||
"java -jar " & ENGINE(file_format) & "run.jar " & DOC_NAME & ".obj" | "java -jar " & ENGINE(file_format) & "\run.jar " & DOC_NAME & ".obj" | ||
Case "bat" 'BAT | Case "bat" 'BAT | ||
| 331行目: | 411行目: | ||
;exec_sbcl_comp.lisp | ;exec_sbcl_comp.lisp | ||
;exec_cmd.vbs SBCLコンパイル用 | ;exec_cmd.vbs SBCLコンパイル用 | ||
;Mery以下のMacro\exec_cmd\に配置してください。 | |||
(compile-file (elt *posix-argv* 1)) | (compile-file (elt *posix-argv* 1)) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
2016年4月29日 (金) 20:34時点における版
概要
コンソール実行をVBSに移植して、1ファイルのみで多言語対応出来るように機能強化したものです。
拡張子からコマンドを判別するため、以前のように呼び出す時に設定する必要はありません。
足りない言語についても、Caseを追加して実行コマンドを設定することで使用できるようになります。
なお、いくつかのコマンドは動作確認出来ていないため、
その時は修正して使って頂くようお願いします。
対応済み言語一覧
JavaScript(Node.js、JScript、JScript.NET)、TypeScript、CoffeeScript、VBScript、
Ruby、Perl、Python(PyPy)、Lua(JIT)、C#、VB.NET、PowerShell、CommonLisp(CLISP、SBCL、MKCL)
Scheme(Gauche)、C,C++(VC++、BCC32、G++)、D、Go、Pascal、Fortran、CASL II、BAT
※ただし、基本的にはパスが通っていることが前提。
ZIP【2016/04/28更新】
ファイル:拡張子でコンソール実行inマクロ.zip
変換済みicoファイル込
アイコン
ソース
#icon="exec_cmd.ico"
#title="コンソール実行"
' exec_cmd.vbs
'ファイルの保存
Document.Save()
'保存してなければ終了。
If Document.Name="" Then
MsgBox "ファイルが保存されてません。"
Quit
End If
'タイトル名 Document.Name:現在のファイル名
Dim TITLE
'実行コマンド
Dim EXEC_COMMAND
'使用エンジン
Function ENGINE(file_format)
Select Case LCase(file_format)
'JavaScript
Case "js"
'ENGINE="node"
ENGINE="jscript"
'ENGINE="jsc"
'Python
Case "py"
ENGINE="python"
'ENGINE="pypy"
'PHP
Case "php"
ENGINE="php"
'ENGINE="phpc"
'Lua
Case "lua"
ENGINE="lua"
'ENGINE="luajit"
'LISP, CommonLisp
Case "l","lisp","lsp"
ENGINE="clisp"
ENGINE="sbcl"
'ENGINE="mkcl"
'C, C++
Case "c","cpp"
'ENGINE="cl"
'ENGINE="bcc32"
ENGINE="g++"
'************** Path設定 **************
'TypeScript
Case "ts"
ENGINE="%ProgramFiles%\Microsoft SDKs\TypeScript\1.0"
'ENGINE="%APPDATA%\npm"
'CoffeeScript
Case "coffee"
ENGINE="%APPDATA%\npm"
'C#
Case "cs"
'cscのパス
'ENGINE="%ProgramFiles%\MSBuild\12.0\Bin"
'ENGINE="%ProgramFiles%\MSBuild\14.0\Bin"
ENGINE="%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319"
'VB.NET
Case "vb"
'vbcのパス
ENGINE="%ProgramFiles%\MSBuild\12.0\Bin"
'ENGINE="%ProgramFiles%\MSBuild\14.0\Bin"
'ENGINE="%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319"
'F#
Case "fs"
'fscのパス
ENGINE="%ProgramFiles%\Microsoft SDKs\F#\3.1\Framework\v4.0"
'CASL II
Case "cas"
'jarのパス
ENGINE="%HOMEDRIVE%\javaCASL2"
End Select
End Function
'パッケージファイル
Dim PKG_FILES
'コマンドオプション
Dim CMD_OPTION
'ビルドメッセージ
Dim BUILDED
BUILDED=" & Echo Complited."
Dim doc_names:doc_names=Split(Document.Name,".")
'拡張子
Dim file_format:file_format=doc_names(UBound(doc_names))
doc_names(UBound(doc_names))=""
'拡張子を除いたファイル名
Dim DOC_NAME
DOC_NAME=Join(doc_names,".")
DOC_NAME=Mid(DOC_NAME,1,Len(DOC_NAME)-1)
'タイトル、実行コマンド
Select Case LCase(file_format)
Case "js" 'JavaScript
Select Case ENGINE(file_format)
Case "node" 'Node.js
'デバッグオプション
'一行目に //debug と加えることでデバッグモードでの実行を行う。
If load_option("//debug") Then
CMD_OPTION="debug"
Else
CMD_OPTION=""
End If
TITLE="Node.js " & Document.Name
EXEC_COMMAND="node " & CMD_OPTION & " " & Document.Name
Case "jscript" 'JScript
TITLE="JScript " & Document.Name
EXEC_COMMAND="cscript //nologo //E:JScript " & Document.Name
Case "jsc" 'JScript.NET
PKG_FILES=Document.Name
TITLE="JScript.NET "+ Document.Name
EXEC_COMMAND= _
"""%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\jsc"" /nologo /out:" & _
DOC_NAME & ".exe " & PKG_FILES & " & " & _
DOC_NAME & ".exe"
End Select
Case "ts" 'TypeScript
TITLE="TypeScript to " & ENGINE("js") & " " & Document.Name
EXEC_COMMAND="""" & ENGINE(file_format) & "\tsc"" " & Document.Name
EXEC_COMMAND=EXEC_COMMAND & " & "
'エンジン選択
Select Case ENGINE("js")
Case "node" 'Node.js
EXEC_COMMAND=EXEC_COMMAND & _
"node " & " " & DOC_NAME & ".js"
Case "jscript" 'JScript
EXEC_COMMAND=EXEC_COMMAND & _
"cscript //nologo //E:JScript " & DOC_NAME & ".js"
Case "jsc" 'JScript.NET
'非対応?
End Select
Case "coffee" 'CoffeeScript
'コンパイルオプション
'一行目に #js と加えることでコンパイルを行う。
If load_option("#js") Then
CMD_OPTION="--compile"
Else
CMD_OPTION=""
BUILDED=""
End If
TITLE="CoffeeScript " & Document.Name
EXEC_COMMAND="""" & ENGINE(file_format) & "\coffee"" " & CMD_OPTION & " " & Document.Name & BUILDED
Case "vbs" 'VBScript
TITLE="VBScript " & Document.Name
EXEC_COMMAND="cscript //nologo //E:VBScript " & Document.Name
Case "wsf" 'WSF
TITLE="WSF " & Document.Name
EXEC_COMMAND="cscript //nologo " & Document.Name
Case "rb" 'Ruby
TITLE="Ruby " & Document.Name
EXEC_COMMAND="ruby " & Document.Name
Case "pl" 'Perl
TITLE="Perl " & Document.Name
EXEC_COMMAND="perl " & Document.Name
Case "py" 'Python
Select Case ENGINE(file_format)
Case "python" 'Python
TITLE="Python " & Document.Name
EXEC_COMMAND="python " & Document.Name
Case "pypy" 'PyPy
TITLE="PyPy " & Document.Name
EXEC_COMMAND="pypy " & Document.Name
End Select
Case "php" 'PHP
Select Case ENGINE(file_format)
Case "php" 'PHP
TITLE="PHP " & Document.Name
EXEC_COMMAND="python " & Document.Name
Case "phpc" 'Phalanger
TITLE="Phalanger " & Document.Name
EXEC_COMMAND="phpc " & Document.Name
End Select
Case "lua" 'Lua
Select Case ENGINE(file_format)
Case "lua" 'Lua
TITLE="Lua " & Document.Name
EXEC_COMMAND="lua " & Document.Name
Case "luajit" 'LuaJIT
TITLE="LuaJIT " & Document.Name
EXEC_COMMAND="luajit " & Document.Name
End Select
Case "cs" 'C#
'コンパイルファイル選択
'デフォルトでフォルダ内全てをコンパイル。
'一行目に //only と加えることでそのファイルのみコンパイルを行う。
If load_option("//only") Then
PKG_FILES=Document.Name
Else
PKG_FILES="*.cs"
End If
TITLE="C# "+ Document.Name
EXEC_COMMAND= _
"del " & DOC_NAME & ".exe & " & _
"""" & ENGINE(file_format) & "\csc""" & _
" /nologo /out:" & DOC_NAME & ".exe " & PKG_FILES & " /optimize+ & " & _
DOC_NAME & ".exe"
Case "vb" 'VB.NET
'コンパイルファイル選択
'デフォルトでフォルダ内全てをコンパイル。
'一行目に 'only と加えることでそのファイルのみコンパイルを行う。
If load_option("'only") Then
PKG_FILES=Document.Name
Else
PKG_FILES="*.vb"
End If
TITLE="VB.NET "+ Document.Name
EXEC_COMMAND= _
"""" & ENGINE(file_format) & "\vbc""" & _
" /nologo /out:" & DOC_NAME & ".exe " & PKG_FILES & " /optimize+ & " & _
DOC_NAME & ".exe"
Case "fs" 'F#
PKG_FILES=Document.Name
TITLE="F# "+ Document.Name
EXEC_COMMAND= _
"""" & ENGINE(file_format) & "\fsc""" & _
" --nologo --out:" & DOC_NAME & ".exe " & PKG_FILES & " --optimize+ & " & _
DOC_NAME & ".exe"
Case "ps1" 'PowerShell
TITLE="PowerShell " & Document.Name
EXEC_COMMAND="powershell " & Document.Name
Case "c","cpp" 'C, C++
Select Case ENGINE(file_format)
Case "cl"
TITLE="Visual C++ " & Document.Name
EXEC_COMMAND="cl " & Document.Name & " & " & DOC_NAME & ".exe"
Case "bcc32"
TITLE="Borland C++ " & Document.Name
EXEC_COMMAND="bcc32 " & Document.Name & " & " & DOC_NAME & ".exe"
Case "g++"
TITLE="GNU GCC C++ " & Document.Name
EXEC_COMMAND="g++ " & Document.Name & " & " & DOC_NAME & ".exe"
End Select
Case "d" 'D言語
TITLE="D言語 " & Document.Name
EXEC_COMMAND="dmd " & Document.Name & " & " & DOC_NAME & ".exe"
Case "go" 'Golang
'コンパイルオプション
'一行目に//buildでビルドを行う。
If load_option("//build") Then
CMD_OPTION="build"
Else
CMD_OPTION="run"
End If
TITLE="Go " & Document.Name
EXEC_COMMAND="go " & CMD_OPTION & " " & Document.Name
Case "l","lisp","lsp" 'LISP, CommonLisp
Select Case ENGINE(file_format)
Case "clisp" 'CLISP
'コンパイルオプション
'デフォルトではインタプリタとして実行する。
'一行目に ;fas と加えることでfasファイルにコンパイルを行う。
If load_option(";fas") Then
CMD_OPTION="-c"
Else
CMD_OPTION=""
End If
TITLE="CLISP " & Document.Name
EXEC_COMMAND="clisp " & CMD_OPTION & " " & Document.Name
Case "sbcl" 'SteelBankCommonLisp
'コンパイルオプション
'デフォルトではインタプリタとして実行する。
'一行目に ;fasl と加えることでfaslファイルにコンパイルを行う。
'(Macrosフォルダにexec_sbcl_comp.lisp 必須)
If load_option(";fasl") Then
Dim me_paths:me_paths=Split(Editor.FullName,"\")
me_paths(UBound(me_paths))=""
'Macrosフォルダのパス取得
Dim me_path:me_path=Join(me_paths,"\") & "Macros\exec_cmd\"
CMD_OPTION=me_path & "exec_sbcl_comp.lisp"
Else
CMD_OPTION=""
End If
TITLE="SBCL " & Document.Name
EXEC_COMMAND="sbcl --script " & CMD_OPTION & " " & Document.Name
Case "mkcl" 'ManKaiCommonLisp
'コンパイルオプション
'デフォルトではインタプリタとして実行する。
'一行目に ;fas でfasファイル生成。
' ;exe でexeファイル生成
If load_option(";fas") Then
CMD_OPTION="-compile " & Document.Name
ElseIf load_option(";exe") Then
TITLE="MKCL " & Document.Name
CMD_OPTION="-not-fasl-p -compile " & Document.Name & " & " & _
"timeout /t 1 > nul & " &_
"mkcl -o " & DOC_NAME & ".exe -link " & DOC_NAME & ".o" & _
BUILDED
'mkcl -not-fasl-p -compile a.lisp & mkcl -o a.exe -link a.o
'exe化失敗を防ぐためにwaitの小細工
Else
CMD_OPTION="-shell " & Document.Name
End If
TITLE="MKCL " & Document.Name
EXEC_COMMAND="mkcl " & CMD_OPTION
End Select
Case "scm" 'Scheme
TITLE="Gauche " & Document.Name
EXEC_COMMAND="gosh " & Document.Name
Case "pas","pp" 'PASCAL
TITLE="FreePascal " & Document.Name
EXEC_COMMAND="fpc " & Document.Name & " & " & DOC_NAME & ".exe"
Case "f90" 'Fortran
TITLE="GFortran " & Document.Name
EXEC_COMMAND="gfortran " & Document.Name & " & " & DOC_NAME & ".exe"
Case "cas" 'CASL II
TITLE="JAVA CASL II " & Document.Name
EXEC_COMMAND="java -jar " & ENGINE(file_format) & "\casl2.jar " & Document.Name & " & " & _
"java -jar " & ENGINE(file_format) & "\run.jar " & DOC_NAME & ".obj"
Case "bat" 'BAT
TITLE="BAT " & Document.Name
EXEC_COMMAND=Document.Name
Case Else
TITLE=Document.Name
EXEC_COMMAND= Document.Name
End Select
'コマンドライン起動
Dim cmd:Set cmd = CreateObject("WScript.Shell")
cmd.Run _
"cmd /C """ & _
"title " & TITLE & " & " & _
"cd/d " & Document.Path & " & " & _
EXEC_COMMAND & " & " & _
"pause > nul &" & _
"exit""",1
Set cmd=Nothing
'コマンドラインオプションの読込
Function load_option(opt)
load_option=Instr(LCase(Document.GetLine(1)),opt)
End Function
;exec_sbcl_comp.lisp
;exec_cmd.vbs SBCLコンパイル用
;Mery以下のMacro\exec_cmd\に配置してください。
(compile-file (elt *posix-argv* 1))
スポンサーリンク