「拡張子からコンソール実行」の版間の差分

編集の要約なし
編集の要約なし
10行目: 10行目:
JavaScript(Node.js、JScript、JScript.NET、Rhino)、TypeScript、CoffeeScript、VBScript、<br>
JavaScript(Node.js、JScript、JScript.NET、Rhino)、TypeScript、CoffeeScript、VBScript、<br>
Ruby(JRuby、IronRuby)、Perl、Python(PyPy)、Lua(JIT)、C#、VB.NET、F#、PowerShell、<br>
Ruby(JRuby、IronRuby)、Perl、Python(PyPy)、Lua(JIT)、C#、VB.NET、F#、PowerShell、<br>
C,C++(VC++、BCC32、G++)、D、Go、Ada、Java、Scala、Groovy、Pascal、Fortran、Haskell<br>
C,C++(VC++、BCC32、G++)、D、Go、Java、Scala、Groovy、Ada(GNAT)、Pascal(FPC)、Fortran(G)、Haskell(GHC)<br>
CommonLisp(CLISP、SBCL、MKCL、CCL)、Scheme(Gauche)、Clojure(JVM、CLR)、CASL II、BAT<br>
CommonLisp(CLISP、SBCL、MKCL、CCL)、Scheme(Gauche)、Clojure(JVM、CLR)、CASL II、NASM、.NetIL(ilasm)、BAT<br>
<br>
<br>
※ただし、基本的にはパスが通っていることが前提。<br>
※ただし、基本的にはパスが通っていることが前提。<br>
HSPはコマンドラインコンパイラが標準で用意されていないため断念。(同様になでしこ。)<br>
公式プラグインの[[プラグイン:HSPコンパイル実行プラグイン|HSPコンパイル実行プラグイン]]をご利用ください。


== [[File:拡張子でコンソール実行.png]] ZIP ==
== [[File:拡張子でコンソール実行.png]] ZIP ==
77行目: 79行目:
Case "l","lisp","lsp"
Case "l","lisp","lsp"
ENGINE="clisp"
ENGINE="clisp"
'ENGINE="sbcl"
ENGINE="sbcl"
'ENGINE="ccl"
'ENGINE="ccl"
'ENGINE="mkcl"
'ENGINE="ccl64"
ENGINE="mkcl"
'Clojure
'Clojure
Case "clj"
Case "clj"
90行目: 93行目:
Function ENGINE_PATH(file_format)
Function ENGINE_PATH(file_format)
Select Case LCase(file_format)
Select Case LCase(file_format)
'JScript.NET
Case "jsc"
ENGINE_PATH="%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727"
'TypeScript
'TypeScript
Case "ts"
Case "ts"
ENGINE_PATH="%ProgramFiles%\Microsoft SDKs\TypeScript\1.0"
'ENGINE_PATH="%ProgramFiles%\Microsoft SDKs\TypeScript\1.0"
'ENGINE_PATH="%APPDATA%\npm"
'ENGINE_PATH="%ProgramFiles(x86)%\Microsoft SDKs\TypeScript\1.0"
ENGINE_PATH="%APPDATA%\npm"
'CoffeeScript
'CoffeeScript
Case "coffee"
Case "coffee"
ENGINE_PATH="%APPDATA%\npm"
ENGINE_PATH="%APPDATA%\npm"
'C#
'C#, VB.NET
Case "cs"
Case "cs","vb"
ENGINE_PATH="%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319"
'ENGINE_PATH="%ProgramFiles%\MSBuild\12.0\Bin"
'ENGINE_PATH="%ProgramFiles%\MSBuild\14.0\Bin"
'VB.NET
Case "vb"
ENGINE_PATH="%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319"
ENGINE_PATH="%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319"
'ENGINE_PATH="%ProgramFiles%\MSBuild\12.0\Bin"
'ENGINE_PATH="%ProgramFiles%\MSBuild\12.0\Bin"
'ENGINE_PATH="%ProgramFiles%\MSBuild\14.0\Bin"
'ENGINE_PATH="%ProgramFiles%\MSBuild\14.0\Bin"
'ENGINE_PATH="%ProgramFiles(x86)%\MSBuild\12.0\Bin"
'ENGINE_PATH="%ProgramFiles(x86)%\MSBuild\14.0\Bin"
'F#
'F#
Case "fs"
Case "fs"
ENGINE_PATH"%ProgramFiles%\Microsoft SDKs\F#\3.1\Framework\v4.0"
ENGINE_PATH"%ProgramFiles%\Microsoft SDKs\F#\3.1\Framework\v4.0"
'ENGINE_PATH"%ProgramFiles(x86)%\Microsoft SDKs\F#\3.1\Framework\v4.0"
'Rhino
'Rhino
Case "rhino"
Case "rhino"
120行目: 125行目:
Case "cas"
Case "cas"
ENGINE_PATH="%HOMEDRIVE%\javaCASL2"
ENGINE_PATH="%HOMEDRIVE%\javaCASL2"
'NASM LINK用(VC++必須)
Case "link"
ENGINE_PATH="%ProgramFiles%\Microsoft Visual Studio 12.0\VC\bin"
'ENGINE_PATH="%ProgramFiles(x86)%\Microsoft Visual Studio 12.0\VC\bin"
Case "msvcrt"
ENGINE_PATH="%ProgramFiles%\Microsoft Visual Studio 12.0\VC\lib"
'ENGINE_PATH="%ProgramFiles(x86)%Microsoft Visual Studio 12.0\VC\lib"
Case "kernel32"
ENGINE_PATH="%ProgramFiles%\Microsoft SDKs\Windows\v7.1A\Lib"
'ENGINE_PATH="%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Lib"
Case "addlib"
'ライブラリが他に必要であれば空白区切りで与えてください。
'(ファイルパスに空白を含む時は注意)
ENGINE_PATH=""
'NASM LINK用ここまで
End Select
End Select
End Function
End Function
129行目: 149行目:
'ビルドメッセージ
'ビルドメッセージ
Dim BUILDED
Dim BUILDED
BUILDED=" & Echo Complited."
BUILDED="Echo Complited."


Dim doc_names:doc_names=Split(Document.Name,".")
Dim doc_names:doc_names=Split(Document.Name,".")
136行目: 156行目:
Dim file_format:file_format=doc_names(UBound(doc_names))
Dim file_format:file_format=doc_names(UBound(doc_names))
doc_names(UBound(doc_names))=""
doc_names(UBound(doc_names))=""
Dim br:br=" & " '改行用


'拡張子を除いたファイル名
'拡張子を除いたファイル名
160行目: 182行目:
TITLE="Node.js " & Document.Name
TITLE="Node.js " & Document.Name
EXEC_COMMAND="node " & CMD_OPTION & " " & Document.Name
EXEC_COMMAND=Join(Array("node ",CMD_OPTION," ",Document.Name),"")


Case "jscript" 'JScript
Case "jscript" 'JScript
169行目: 191行目:
PKG_FILES=Document.Name
PKG_FILES=Document.Name
TITLE="JScript.NET "+ Document.Name
TITLE="JScript.NET "+ Document.Name
EXEC_COMMAND= _
EXEC_COMMAND=Join(Array( _
"""%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\jsc"" /nologo /out:" & _
"""",ENGINE_PATH(ENGINE(file_format)),"\jsc"" /nologo /out:", _
DOC_NAME & ".exe " & PKG_FILES & " & " & _
DOC_NAME,".exe ",PKG_FILES,br, _
DOC_NAME & ".exe"
DOC_NAME,".exe" _
),"")


Case "rhino" 'Rhino
Case "rhino" 'Rhino
TITLE="Rhino " & Document.Name
TITLE="Rhino " & Document.Name
EXEC_COMMAND="java -jar " & ENGINE_PATH(ENGINE(file_format)) & "\js.jar " & Document.Name
EXEC_COMMAND=Join(Array("java -jar ",ENGINE_PATH(ENGINE(file_format)),"\js.jar ",Document.Name),"")
End Select
End Select


Case "ts" 'TypeScript
Case "ts" 'TypeScript
TITLE="TypeScript to " & ENGINE("js") & " " & Document.Name
TITLE="TypeScript to " & ENGINE("js") & " " & Document.Name
EXEC_COMMAND="""" & ENGINE_PATH(file_format) & "\tsc"" " & Document.Name
EXEC_COMMAND=Join(Array("""",ENGINE_PATH(file_format),"\tsc"" ",Document.Name,br),"")
 
EXEC_COMMAND=EXEC_COMMAND & " & "


'エンジン選択
'エンジン選択
Select Case ENGINE("js")
Select Case ENGINE("js")
Case "node" 'Node.js
Case "node" 'Node.js
EXEC_COMMAND=EXEC_COMMAND & _
EXEC_COMMAND=Join(Array(EXEC_COMMAND, _
"node " & " " & DOC_NAME & ".js"
"node ",DOC_NAME,".js" _
),"")


Case "jscript" 'JScript
Case "jscript" 'JScript
EXEC_COMMAND=EXEC_COMMAND & _
EXEC_COMMAND=Join(Array(EXEC_COMMAND, _
"cscript //nologo //E:JScript " & DOC_NAME & ".js"
"cscript //nologo //E:JScript ",DOC_NAME,".js" _
),"")


Case "jsc" 'JScript.NET
Case "jsc" 'JScript.NET
210行目: 233行目:


TITLE="CoffeeScript " & Document.Name
TITLE="CoffeeScript " & Document.Name
EXEC_COMMAND="""" & ENGINE_PATH(file_format) & "\coffee"" " & CMD_OPTION & " " & Document.Name & BUILDED
EXEC_COMMAND=Join(Array( _
"""",ENGINE_PATH(file_format),"\coffee"" ",CMD_OPTION," ",Document.Name _
),"")


Case "vbs" 'VBScript
Case "vbs" 'VBScript
285行目: 310行目:
TITLE="C# "+ Document.Name
TITLE="C# "+ Document.Name
EXEC_COMMAND= _
EXEC_COMMAND=Join(Array( _
"""" & ENGINE_PATH(file_format) & "\csc""" & _
"""",ENGINE_PATH(file_format),"\csc"" ", _
" /nologo /out:" & DOC_NAME & ".exe " & PKG_FILES & " /optimize+ & " & _
"/nologo /out:",DOC_NAME,".exe ",PKG_FILES," /optimize+",br, _
DOC_NAME & ".exe"
DOC_NAME,".exe" _
),"")


Case "vb" 'VB.NET
Case "vb" 'VB.NET
301行目: 327行目:
TITLE="VB.NET "+ Document.Name
TITLE="VB.NET "+ Document.Name
EXEC_COMMAND= _
EXEC_COMMAND=Join(Array( _
"""" & ENGINE_PATH(file_format) & "\vbc""" & _
"""",ENGINE_PATH(file_format),"\vbc""", _
" /nologo /out:" & DOC_NAME & ".exe " & PKG_FILES & " /optimize+ & " & _
" /nologo /out:",DOC_NAME,".exe ",PKG_FILES," /optimize+",br, _
DOC_NAME & ".exe"
DOC_NAME,".exe" _
),"")


Case "fs" 'F#
Case "fs" 'F#
310行目: 337行目:
TITLE="F# "+ Document.Name
TITLE="F# "+ Document.Name
EXEC_COMMAND= _
EXEC_COMMAND=Join(Array( _
"""" & ENGINE_PATH(file_format) & "\fsc""" & _
"""",ENGINE_PATH(file_format),"\fsc""", _
" --nologo --out:" & DOC_NAME & ".exe " & PKG_FILES & " --optimize+ & " & _
" --nologo --out:",DOC_NAME,".exe ",PKG_FILES," --optimize+",br, _
DOC_NAME & ".exe"
DOC_NAME,".exe" _
),"")


Case "ps1" 'PowerShell
Case "ps1" 'PowerShell
323行目: 351行目:
Case "cl" 'Visual C++  
Case "cl" 'Visual C++  
TITLE="Visual C++ " & Document.Name
TITLE="Visual C++ " & Document.Name
EXEC_COMMAND="cl " & Document.Name & " & " & DOC_NAME & ".exe"
EXEC_COMMAND=Join(Array( _
"cl ",Document.Name,br, _
DOC_NAME,".exe" _
),"")


Case "bcc32" 'Borland C++
Case "bcc32" 'Borland C++
TITLE="Borland C++ " & Document.Name
TITLE="Borland C++ " & Document.Name
EXEC_COMMAND="bcc32 " & Document.Name & " & " & DOC_NAME & ".exe"
EXEC_COMMAND=Join(Array( _
"bcc32 ",Document.Name,br, _
DOC_NAME,".exe" _
),"")


Case "g++" 'GCC C++
Case "g++" 'GCC C++
TITLE="GCC C++ " & Document.Name
TITLE="GCC C++ " & Document.Name
EXEC_COMMAND="g++ " & Document.Name & " & " & DOC_NAME & ".exe"
EXEC_COMMAND=Join(Array( _
"g++ ",Document.Name,br, _
DOC_NAME,".exe" _
),"")
End Select
End Select


Case "d" 'D言語
Case "d" 'D言語
TITLE="D言語 " & Document.Name
TITLE="D言語 " & Document.Name
EXEC_COMMAND="dmd " & Document.Name & " & " & DOC_NAME & ".exe"
EXEC_COMMAND="dmd " & Document.Name & br & DOC_NAME & ".exe"


Case "go" 'Go
Case "go" 'Go
349行目: 386行目:
Case "adb" 'Ada
Case "adb" 'Ada
TITLE="GNAT Ada " & Document.Name
TITLE="GNAT Ada " & Document.Name
EXEC_COMMAND="gnatmake " & Document.Name & " & " & DOC_NAME & ".exe"
EXEC_COMMAND=Join(Array( _
"gnatmake ",Document.Name,br _
,DOC_NAME,".exe" _
),"")


Case "java" 'Java
Case "java" 'Java
'jar化は手順が面倒そうなので保留
'jar化は手順が面倒そうなので保留
TITLE="Java " & Document.Name
TITLE="Java " & Document.Name
EXEC_COMMAND="javac " & Document.Name & " & " & _
EXEC_COMMAND=Join(Array( _
"java " & DOC_NAME
"javac ",Document.Name,br, _
"java ",DOC_NAME _
),"")


Case "scala" 'Scala
Case "scala" 'Scala
379行目: 421行目:
Case "hs" 'Haskell
Case "hs" 'Haskell
TITLE="GHC " & Document.Name
TITLE="GHC " & Document.Name
EXEC_COMMAND="ghc --make " & Document.Name & " & " & DOC_NAME & ".exe"
EXEC_COMMAND=Join(Array( _
"ghc --make ",Document.Name,br, _
DOC_NAME,".exe" _
),"")


Case "l","lisp","lsp" 'LISP, CommonLisp
Case "l","lisp","lsp" 'LISP, CommonLisp
393行目: 438行目:


TITLE="CLISP " & Document.Name
TITLE="CLISP " & Document.Name
EXEC_COMMAND="clisp " & CMD_OPTION & " " & Document.Name
EXEC_COMMAND=Join(Array("clisp ",CMD_OPTION," ",Document.Name),"")


Case "sbcl" 'SteelBankCommonLisp
Case "sbcl" 'SteelBankCommonLisp
410行目: 455行目:
End If
End If
TITLE="SBCL " & Document.Name
TITLE="SBCL " & Document.Name
EXEC_COMMAND="sbcl --script " & CMD_OPTION & " " & Document.Name
EXEC_COMMAND=Join(Array( _
"sbcl --script ",CMD_OPTION," ",Document.Name _
),"")


Case "ccl" 'ClozureLisp
Case "ccl" 'ClozureLisp
'オプション無し。コンパイルはlispファイルに以下のような設定文を書き加える。
'(ccl:save-application "hello.exe" ;ファイル名
' :toplevel-function #'main ;初期起動関数
' :prepend-kernel t)
TITLE="ClozureLisp " & Document.Name
TITLE="ClozureLisp " & Document.Name
EXEC_COMMAND="wx86cl --load " & Document.Name
EXEC_COMMAND="wx86cl --load " & Document.Name
Case "ccl64" 'ClozureLisp64
TITLE="ClozureLisp " & Document.Name
EXEC_COMMAND="wx86cl64 --load " & Document.Name


Case "mkcl" 'ManKaiCommonLisp
Case "mkcl" 'ManKaiCommonLisp
424行目: 478行目:
ElseIf load_option(";exe") Then
ElseIf load_option(";exe") Then
TITLE="MKCL " & Document.Name
TITLE="MKCL " & Document.Name
CMD_OPTION="-not-fasl-p -compile " & Document.Name & " & " & _
CMD_OPTION=Join(Array( _
"timeout /t 1 > nul & " &_
"-not-fasl-p -compile ",Document.Name,br, _
"mkcl -o " & DOC_NAME & ".exe -link " & DOC_NAME & ".o" & _
"timeout /t 1 > nul",br, _
BUILDED
"mkcl -o ",DOC_NAME,".exe -link ",DOC_NAME,".o",br, _
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の小細工
448行目: 504行目:
version=Split(ENGINE_PATH(ENGINE(file_format)),"-")
version=Split(ENGINE_PATH(ENGINE(file_format)),"-")
TITLE="Clojure " & Document.Name
TITLE="Clojure " & Document.Name
EXEC_COMMAND= _
EXEC_COMMAND=Join(Array( _
"java -jar """ & ENGINE_PATH(ENGINE(file_format)) & _
"java -jar """,ENGINE_PATH(ENGINE(file_format)), _
"\clojure-" & version(UBound(version)) & ".jar"" " & Document.Name
"\clojure-",version(UBound(version)),".jar"" ",Document.Name _
),"")


Case "clojure-clr" 'ClojureCLR
Case "clojure-clr" 'ClojureCLR
459行目: 516行目:
Case "pas","pp" 'PASCAL
Case "pas","pp" 'PASCAL
TITLE="FreePascal " & Document.Name
TITLE="FreePascal " & Document.Name
EXEC_COMMAND="fpc " & Document.Name & " & " & DOC_NAME & ".exe"
EXEC_COMMAND=Join(Array( _
"fpc ",Document.Name,br, _
DOC_NAME,".exe" _
),"")


Case "f","f90","f95","f03" 'Fortran
Case "f","f90","f95","f03" 'Fortran
TITLE="GFortran " & Document.Name
TITLE="GFortran " & Document.Name
EXEC_COMMAND="gfortran -o " & DOC_NAME & " " & Document.Name & " & " & DOC_NAME & ".exe"
EXEC_COMMAND=Join(Array( _
"gfortran -o ",DOC_NAME," ",Document.Name,br, _
DOC_NAME,".exe" _
),"")


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_PATH(file_format) & "\casl2.jar"" " & Document.Name & " & " & _
EXEC_COMMAND=Join(Array( _
"java -jar " & ENGINE(file_format) & "\run.jar " & DOC_NAME & ".obj"
"java -jar """,ENGINE_PATH(file_format),"\casl2.jar"" ",Document.Name,br, _
"java -jar ",ENGINE(file_format),"\run.jar ",DOC_NAME,".obj" _
),"")
 
Case "asm" 'NASM
TITLE="NAST " & Document.Name
EXEC_COMMAND=Join(Array("nasm -f win32 ",Document.Name,br, _
"""",ENGINE_PATH("link"),"\link"" /nologo /out:",DOC_NAME,".exe ",DOC_NAME,".obj ", _
"""",ENGINE_PATH("msvcrt"),"\msvcrt.lib"" """,ENGINE_PATH("kernel32"),"\Kernel32.lib"" ", _
ENGINE_PATH("addlib"),br, _
DOC_NAME,".exe" _
),"")
 
Case "il" '.NetILアセンブラ
TITLE=".NetIL " & Document.Name
EXEC_COMMAND=Join(Array( _
"ilasm /nologo /quiet ",Document.Name,br, _
DOC_NAME,".exe" _
),"")


Case "bat" 'BAT
Case "bat" 'BAT
476行目: 557行目:
Case Else
Case Else
TITLE=Document.Name
TITLE=Document.Name
EXEC_COMMAND= Document.Name
EXEC_COMMAND=Document.Name
End Select
End Select


'コマンドライン起動
'コマンドライン起動
Dim cmd:Set cmd = CreateObject("WScript.Shell")
Dim cmd:Set cmd = CreateObject("WScript.Shell")
cmd.Run _
cmd.Run Join(Array( _
"cmd /C """ & _
"cmd /C """, _
"title " & TITLE & " & " & _
"title ",TITLE,br, _
"cd/d " & Document.Path & " & " & _
"cd/d ",Document.Path,br, _
DEL_BINARY() & _
DEL_BINARY(), _
EXEC_COMMAND & " & " & _
EXEC_COMMAND,br, _
"pause > nul &" & _
"pause > nul",br, _
"exit""",1
"exit"""),""),1


Set cmd=Nothing
Set cmd=Nothing
500行目: 581行目:
Function DEL_BINARY()
Function DEL_BINARY()
If load_option("delexe") Then
If load_option("delexe") Then
DEL_BINARY="del " & DOC_NAME & ".exe & "
DEL_BINARY=Join(Array("del ",DOC_NAME,".exe",br),"")
ElseIf load_option("delclass") Then
ElseIf load_option("delclass") Then
DEL_BINARY="del " & DOC_NAME & ".class & "
DEL_BINARY=Join(Array("del ",DOC_NAME,".class",br),"")
Else
Else
DEL_BINARY=""
DEL_BINARY=""
スポンサーリンク