2015-12-03 361 views
0

我有以下腳本:運行命令和cmd命令有什麼區別?

^!c:: 
Run stop 
Return 

停止配置爲通過環境變量來運行程序。

所以,如果我打開CMD,輸入「停止」並回車打開程序的意圖,即使我把WINKEY + [R它做同樣的事情。但是,如果我使用腳本ctrl + alt + c。我沒有得到相同的結果。

爲什麼腳本做了不同的事情?

我怎樣才能改變我的腳本的行爲方式相同,如果它是鍵入CMD或WINKEY + [R

+0

也許'下運行cmd/c stop' – wOxxOm

+0

什麼的/ C呢?也沒有運氣 – Aequitas

+0

是「停止」一個批處理文件嗎? 「配置」是什麼意思? – wOxxOm

回答

2

簡單

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

+0

對不起這些爲我工作 – Aequitas

+0

我得到一個「系統找不到指定的路徑」 – Aequitas

+0

嘗試我與「cmd.exe」,而不是Comspec變量 – Schneyer

相關問題