如何使用 AutoIt (*.au3) 脚本在 CMD 窗口中发出命令?

Posted

技术标签:

【中文标题】如何使用 AutoIt (*.au3) 脚本在 CMD 窗口中发出命令?【英文标题】:How to give commands in a CMD window using AutoIt (*.au3) scripts? 【发布时间】:2013-06-03 11:52:43 【问题描述】:

我尝试过但没有成功的方法:

    我打开了cmd.exe 键入“cd\”>> 不带引号 按下 Enter 键入“cd C:\Program Files (x86)\Jenkins” 按下 Enter 键入“jenkins.exe start” 按下 Enter

我还在每种类型之后都使用了sleep 命令,只是为了确保它不会因为执行速度快而跳过。

;Run application
Run("cmd.exe")

;Wait for CMD to be opened
WinWaitActive("Administrator: C:\Windows\system32\cmd.exe", "", 15)

;Write some commands on cmd
ControlSend("Administrator: C:\Windows\system32\cmd.exe", "", "Edit1", "cd\")
Sleep(10000)
Send("Enter")
Sleep(10000)
ControlSend("Administrator: C:\Windows\system32\cmd.exe", "", "Edit1", "cd C:\Program Files (x86)\Jenkins")
Sleep(10000)
Send("Enter")
ControlSend("Administrator: C:\Windows\system32\cmd.exe", "", "Edit1", "jenkins.exe start")
Sleep(10000)
Send("Enter")

我得到了答案:

ControlSend("Administrator: C:\Windows\system32\cmd.exe", "", "", "cd C:\Program Files (x86)\Jenkins")

我需要删除 "Edit" ,因为 cmd 不是可编辑的窗口。

【问题讨论】:

【参考方案1】:

直接启动你的程序:

RunWait(@ComSpec & " /c jenkins.exe start", "C:\Program Files (x86)\Jenkins")

【讨论】:

【参考方案2】:

使用&

经验:

$CMD = 'cd %tmp% & md 1 & md 2 & cd %tmp%/1 & md 3 4 & md "5 6" &'
RunWait(@ComSpec & " /c " & $CMD )

【讨论】:

【参考方案3】:
Run("C:\WINDOWS\system32\cmd.exe")
WinWaitActive("C:\WINDOWS\system32\cmd.exe")
send('cd C:\Program Files (x86)\' & "ENTER")

【讨论】:

【参考方案4】:
;Run application
Run("cmd.exe")

;Wait for CMD to be opened
WinWaitActive("Administrator: C:\Windows\system32\cmd.exe", "", 1)
Send('C:' & "ENTER")
Send('cd Program Files (x86)' & "ENTER")
Send('cd TestAPP' & "ENTER")
Send('start testApp.exe' & "ENTER")

【讨论】:

以上是关于如何使用 AutoIt (*.au3) 脚本在 CMD 窗口中发出命令?的主要内容,如果未能解决你的问题,请参考以下文章

AU3Recorder 未运行

autoit学习安装说明及例子

Selenium调用AutoIT3上传文件

AUTOIT3_网管维护工具测试

Autoit3 如何捕足控件

AU3软件自动化安装教程