vbScript中WScript.Shell对象的run和exec

方法声明:shell

Function Exec(ByVal Command As String) As WshExec对象

Function Run(ByVal Command As String, [ByVal WindowStyle], [ByVal WaitOnReturn]) As Integerip

区别:cmd

1返回值it

run的返回值是一个整数,就是成功0或失败1 exec方法的返回值是对象,从返回对象中能够得到控制台输出信息和控制台错误信息,即StdOut和StdErr属性等。io

如:程序

Dim oShell,exeRscommand

Set oShell = CreateObject("WSCript.shell")方法

commandLine = "xcopy.exe"im

Set exeRs = oShell.Exec(commandLine)

errMsg = exeRs.StdErr.ReadAll()

stdMsg = exeRs.StdOut.ReadAll()

WScript.echo "errMsg:" & errMsg & "stdMsg:" & stdMsg

ret = oShell.run(commandLine, 0, true)

WScript.echo "run method return value:" & ret

Set oShell = Nothing

Set exeRs = Nothing

取控制台错误和控制台信息。

2 执行参数

Run 的后两个参数,一个是cmd窗口的风格,一个是是否等待执行完成。最后一个参数颇有用,若是你但愿等待本次cmd执行的程序结束后,在执行 run后面的语句,设置这个参数为true,不然后面的语句将不等待cmd窗口完成,直接运行。

另外,若是你使用exec 方法的时候,若是但愿等待cmd中程序执行完后,在执行后面的语句,也能够经过下面的方法: oExec.StdErr.ReadAll()或者oExec.StdOut.ReadAll(),道理上也应该好理解,要获得输出的信息,确定要cmd执行完后才会有输出的。

ret = oShell.run(“cmd”, 0, true)

有用的两个值0:不显示窗口 1:显示窗口

注意当执行命令带目录,目录名中有空格 记得要用""括起来 如: commandLine = Chr(34) & "C:\Program Files\aa.exe" & Chr(34) & "/i"

参数的详细信息能够参考

msdn http://msdn.microsoft.com/zh-cn/library/ateytk4a(en-us,VS.85).aspx

http://msdn.microsoft.com/zh-cn/library/d5fk67ky(en-us,VS.85).aspx

相关文章
相关标签/搜索