簡體   English   中英

運行命令和cmd中的命令有什么區別?

[英]What's the difference between Run command and commands in cmd?

我有以下腳本:

^!c::
Run stop
Return

將Stop配置為通過環境變量運行程序。

因此,如果我打開cmd並鍵入“ stop”,然后按Enter輸入程序將按預期方式打開,即使我按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窗口在執行時在其標題中帶有命令。 因此,我們保存了命令窗口的標題,然后等待它放下命令(“停止”)並關閉它。

更新:Cmd窗口關閉已添加到解決方案4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM