运行命令和cmd中的命令有什么区别?
What's the difference between Run command and commands in cmd?
我有以下脚本:
^!c::
Run stop
Return
Stop 通过环境变量配置为 运行 一个程序。
因此,如果我打开 cmd 并键入“停止”并按回车键,程序会按预期打开,即使我按 winkey + R 它做同样的事情。但是,如果我将脚本与 ctrl+alt+c 一起使用。我没有得到相同的结果。
为什么脚本做了一些不同的事情?
我怎样才能改变我的脚本,使它的行为方式与在 cmd 或 winkey + R 中输入的方式相同?
简单:
run, %comspec% /c stop
或者,如果这不起作用,您可以 启动命令 window 并直接发送
run, %comspec% /k
WinWait, %comspec%
WinActivate
Send stop{Enter}
/c
告诉控制台 window 在执行后关闭,/k
让它保持打开状态
或者您可以使用 COM object 甚至获得输出。
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 打开的 window 的标题替换它。 windows cmd window 在执行时在其标题中包含命令。所以我们保存命令的标题window,并等待它删除命令("stop")然后关闭它。
更新:Cmd window close 添加到解决方案 4
我有以下脚本:
^!c::
Run stop
Return
Stop 通过环境变量配置为 运行 一个程序。
因此,如果我打开 cmd 并键入“停止”并按回车键,程序会按预期打开,即使我按 winkey + R 它做同样的事情。但是,如果我将脚本与 ctrl+alt+c 一起使用。我没有得到相同的结果。
为什么脚本做了一些不同的事情?
我怎样才能改变我的脚本,使它的行为方式与在 cmd 或 winkey + R 中输入的方式相同?
简单:
run, %comspec% /c stop
或者,如果这不起作用,您可以 启动命令 window 并直接发送
run, %comspec% /k
WinWait, %comspec%
WinActivate
Send stop{Enter}
/c
告诉控制台 window 在执行后关闭,/k
让它保持打开状态
或者您可以使用 COM object 甚至获得输出。
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 打开的 window 的标题替换它。 windows cmd window 在执行时在其标题中包含命令。所以我们保存命令的标题window,并等待它删除命令("stop")然后关闭它。
更新:Cmd window close 添加到解决方案 4