AutoIT exe 手动工作,但在使用 JAVA 调用时,它只是启动 cmd,之后没有任何反应

AutoIT exe works manually but while invoking with JAVA, it just launches cmd and nothing happens after that

我这里有一个 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 文件编译成一个 exe,它可以正常工作。但我需要用 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,之后什么也没有发生。请帮忙!!

尝试发送 /c/k 开关作为 AutoIt 脚本中的第一个参数。这往往是从非 cmd 或批处理实例向批处理文件或 cmd 相关事物发送参数时的要求。例如,尝试使用:

ControlSend($cmdHandle, "/c", "first command" & @CRLF)

然后看看它是否适用于 java。