运行命令和cmd命令有什么区别?
问题描述:
我有以下脚本:运行命令和cmd命令有什么区别?
^!c::
Run stop
Return
停止配置为通过环境变量来运行程序。
所以,如果我打开CMD,输入“停止”并回车打开程序的意图,即使我把WINKEY + [R它做同样的事情。但是,如果我使用脚本ctrl + alt + c。我没有得到相同的结果。
为什么脚本做了不同的事情?
我怎样才能改变我的脚本的行为方式相同,如果它是键入CMD或WINKEY + [R?
答
简单:
run, %comspec% /c stop
或者,如果这不起作用,你可以只启动一个cmd窗口,直接发送给
run, %comspec% /k
WinWait, %comspec%
WinActivate
Send stop{Enter}
/c
告诉控制台窗口关闭后执行,/k
让它保持开放
或者你可以使用一个COM对象甚至可以得到输出。
objShell := ComObjCreate("WScript.Shell")
objExec := objShell.Exec(ComSpec " /c stop")
strStdOut := ""
while, !objExec.StdOut.AtEndOfStream
{
strStdOut := objExec.StdOut.ReadAll()
}
更新: 没有运行命令不惜一切:
SetTitleMatchMode, 2
send #r
WinWait, TITLE_OF_THE_RUN_WINDOW
WinActivate
send cmd{Enter}
WinWait, cmd.exe
WinActivate
WinGetTitle, title
Send stop{Enter}
WinWait, %title%,,, stop
WinClose,
TITLE_OF_THE_RUN_WINDOW
的标题窗口,其中在Win + R打开替换此。一个Windows cmd窗口在它的标题被执行时有该命令。所以我们保存命令窗口的标题,并等待它放弃命令(“停止”),然后关闭它。
UPDATE:cmd窗口关闭加入溶液4
也许'下运行cmd/c stop' – wOxxOm
什么的/ C呢?也没有运气 – Aequitas
是“停止”一个批处理文件吗? “配置”是什么意思? – wOxxOm