我这里有一个AutoIT脚本:
;Launch CMD
Run("C:\Windows\System32\cmd.exe")
sleep(2000)
$cmdHandle = WinActivate("C:\Windows\System32\cmd.exe")
Sleep(2000)
;Sending document
ControlSend($cmdHandle, "", "", "ftp" & @CRLF)
ControlSend($cmdHandle, "", "", "open" & @CRLF)
Sleep(2000)
ControlSend($cmdHandle, "", "", "first command" & @CRLF)
Sleep(2000)
ControlSend($cmdHandle, "", "", "second-coomand" & @CRLF)第一个命令和第二个命令我不能提供因为它是内部的。我已经将这个.au3文件编译成一个可执行文件,它可以完成这项工作。但是我需要用Java来调用它。我尝试过的Java代码是:
ProcessBuilder pb = new ProcessBuilder("C:\\Users\\username\\eclipse-workspace\\Examples\\src\\com\\own\\examples\\etc.exe");
pb.start();
Thread.sleep(5000);通过java,它只会启动cmd,之后什么也不会发生。请帮帮我!!
发布于 2020-06-04 02:23:19
尝试将/c或/k开关作为AutoIt脚本中的第一个参数发送。这往往是从非cmd或批处理实例向批处理文件或cmd相关内容发送参数时的要求。例如,尝试使用:
ControlSend($cmdHandle, "/c", "first command" & @CRLF)然后看看它是否能在java中工作。
https://stackoverflow.com/questions/62176804
复制相似问题