Cmd 如何使用autohotkey执行单个.java文件?
我想用自动热键执行选定的java代码。通常我可以用以下命令执行单个java文件:Cmd 如何使用autohotkey执行单个.java文件?,cmd,automation,autohotkey,Cmd,Automation,Autohotkey,我想用自动热键执行选定的java代码。通常我可以用以下命令执行单个java文件: javac execute.java //compiling and creating execute.class java execute //executing .class file 我想用自动热键自动化这个过程 ^+e:: sleep 30 Send ^c sleep 30 FileAppend,Clipboard,"C:\Users\q\Desktop\execute.java" sleep
javac execute.java //compiling and creating execute.class
java execute //executing .class file
我想用自动热键自动化这个过程
^+e::
sleep 30
Send ^c
sleep 30
FileAppend,Clipboard,"C:\Users\q\Desktop\execute.java"
sleep 30
run cmd.exe,javac execute.java,hide ; compiling successfully
sleep 2000
results := ComObjCreate("WScript.Shell").Exec("cmd.exe java execute").StdOut.ReadAll() ; can't display executing result
sleep 1000
msgbox % results
return
但我得到以下结果:。因此,我无法使用
results:=ComObjCreate(“WScript.Shell”).Exec(“cmd.exe java execute”).StdOut.ReadAll()
命令正确查看结果。如何解决此问题 您的脚本存在以下问题:
WScript.Shell
读取输出^+e::
Java_CopyCompileAndRun() {
Static objShell := ComObjCreate("WScript.Shell") ; Speeds up subsequent runs
KeyWait Shift ; Possilby unnecessary
KeyWait e ; Possilby unnecessary
Clipboard := ""
Send ^c
ClipWait 1
FileDelete % "C:\Users\q\Desktop\execute.java"
FileAppend % Clipboard, % "C:\Users\q\Desktop\execute.java"
RunWait % A_ComSpec " /c ""javac execute.java""", C:\Users\q\Desktop\, Hide
objExec := objShell.Exec(A_ComSpec " /c ""cd ""C:\Users\q\Desktop\"" & java execute""")
While !(objExec.StdOut.AtEndOfStream && objExec.StdErr.AtEndOfStream) {
sStdOut .= objExec.StdOut.ReadAll()
, sStdErr .= objExec.StdErr.ReadAll()
Sleep 10
}
MsgBox % "StdOut :`n" sStdOut "`n`nStdErr :`n" sStdErr
}
您的脚本存在以下问题:
WScript.Shell
读取输出^+e::
Java_CopyCompileAndRun() {
Static objShell := ComObjCreate("WScript.Shell") ; Speeds up subsequent runs
KeyWait Shift ; Possilby unnecessary
KeyWait e ; Possilby unnecessary
Clipboard := ""
Send ^c
ClipWait 1
FileDelete % "C:\Users\q\Desktop\execute.java"
FileAppend % Clipboard, % "C:\Users\q\Desktop\execute.java"
RunWait % A_ComSpec " /c ""javac execute.java""", C:\Users\q\Desktop\, Hide
objExec := objShell.Exec(A_ComSpec " /c ""cd ""C:\Users\q\Desktop\"" & java execute""")
While !(objExec.StdOut.AtEndOfStream && objExec.StdErr.AtEndOfStream) {
sStdOut .= objExec.StdOut.ReadAll()
, sStdErr .= objExec.StdErr.ReadAll()
Sleep 10
}
MsgBox % "StdOut :`n" sStdOut "`n`nStdErr :`n" sStdErr
}
你试过阅读stderr吗?谢谢。有关于“阅读stderr”的文档吗?t我不知道如何使用这个函数。我在谷歌上搜索了一下,找不到这个函数的任何实际演示。
results:=ComObjCreate(“WScript.Shell”).Exec(“cmd.exe java execute”).stdder.read()代码>我尝试了这个功能,但它抛出了未知名称错误。你尝试过阅读stderr吗?谢谢。有关于“阅读stderr”的文档吗?t我不知道如何使用这个功能。我在谷歌上搜索了一些东西,找不到这个功能的任何实际演示。结果:=ComObjCreate(“WScript.Shell”).Exec(“cmd.exe java execute”).StdDerr.Read()代码>我尝试了这个,但它抛出了未知名称错误