这是一个 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
or
objShell.Run "c:\temp\myscript.vbs C:\WINDOWS\system32\cscript.exe", 0
正如你所看到的,它的形式如下<script><space><executor>
。
最后一个例子使用objShell.Run
代替objShell.Exec
我不知道如何执行命令行程序(如果需要从批处理文件),捕获标准输出,而不显示控制台窗口。有任何想法吗?
我通常用这个:
Wscript.echo execStdOut("ping google.com")
Function execStdOut(cmd)
Dim goWSH : Set goWSH = CreateObject( "WScript.Shell" )
Dim aRet: Set aRet = goWSH.exec(cmd)
execStdOut = aRet.StdOut.ReadAll()
End Function
对于更高级的命令,您可以包装到 comspec (cmd)
my res = execStdOut("%comspec%" & " /c " & """" & "dir /b c:\windows\*.exe" & """" & " && Echo. && Echo finished")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)