这是一个VBScript代码示例,展示了如何捕获命令行程序发送到标准输出的内容。它执行命令xcopy /?并在消息框中显示输出。在消息框出现之前,您会在瞬间看到弹出的控制台窗口。
Set objShell = WScript.CreateObject("WScript.Shell")
Set objExec = objShell.Exec("xcopy /?")
Do
line = objExec.StdOut.ReadLine()
s = s & line & vbcrlf
Loop While Not objExec.Stdout.atEndOfStream
WScript.Echo s下面是另一个VBScript代码示例,它展示了如何在不显示控制台窗口的情况下执行脚本。
objShell.Run "c:\temp\mybatch.bat C:\WINDOWS\system32\cmd.exe", 0或
objShell.Run "c:\temp\myscript.vbs C:\WINDOWS\system32\cscript.exe", 0如您所见,它的形式为<script><space><executor>。最后一个示例使用objShell.Run而不是objShell.Exec
我不知道的是如何执行命令行程序(如果需要的话,从批处理文件),捕获标准输出,而不显示控制台窗口。有什么想法吗?
发布于 2014-03-03 20:32:37
考虑使用带有startupInfo.ShowWindow = 0的Win32_Process来启动带有SW_HIDE的进程,而不是WScript.Shell。我在VBS Run cmd.exe output to a variable; not text file下发布了一个详细的示例。
https://stackoverflow.com/questions/4919573
复制相似问题