如何使用 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 窗口中发出命令?的主要内容,如果未能解决你的问题,请参考以下文章