AHK运行CMD命令并获取其的输出
MsgBox % RunWaitOne("dir " A_ScriptDir) ; ...或一次执行多条命令并获取其输出: MsgBox % RunWaitMany(" ( echo 在这填入命令, echo 会执行所有命令, echo 并获取输出. )") RunWaitOne(command) { ; WshShell 对象: http://msdn.microsoft.com/en-us/library/aew9yb99 shell := ComObjCreate("WScript.Shell") ; 通过 cmd.exe 执行单条命令 exec := shell.Exec(ComSpec " /C " command) ; 读取并返回命令的输出 return exec.StdOut.ReadAll() } RunWaitMany(commands) { shell := ComObjCreate("WScript.Shell") ; 打开 cmd.exe 禁用命令显示 exec := shell.Exec(ComSpec " /Q /K echo off") ; 发送并执行命令,使用新行分隔 exec.StdIn.WriteLine(commands "`nexit") ; 保证执行完毕后退出! ; 读取并返回所有命令的输出 return exec.StdOut.ReadAll() }