千家信息网

WScript.Shell对象的 run()和exec()函数使用详解

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,vbScript 中 WScript.Shell 对象的 run 和 exec 函数功能使用详解函数声明:Set Ws = CreateObject("Wscript.Shell")Function
千家信息网最后更新 2025年12月03日WScript.Shell对象的 run()和exec()函数使用详解

vbScript 中 WScript.Shell 对象的 run 和 exec 函数功能使用详解

函数声明:

Set Ws = CreateObject("Wscript.Shell")
Function Exec(ByVal Command As String) As WshExec
Function Run(ByVal Command As String, [ByVal WindowStyle], [ByVal WaitOnReturn]) As Integer

函数区别:

1,返回值不同
Run 的返回值是一个整数,就是0或1成功和失败两个状态,而 exec 方法的返回值是一个对象,从返回对象中可以获得控制台输出信息和控制台错误信息,即 StdOut 和 StdErr 属性等。
如:
Dim oShell,exeRs
Set oShell = CreateObject("WSCript.shell")
commandLine = "xcopy.exe"
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
可以取道控制台错误和控制台信息。

附记:WshExec 类具有属性 ExitCode,ProcessID,Status,StdErr,StdIn,StdOut 以及一个函数 Terminate,这些属性和函数都很好理解。
Status 属性具有三个值:
Const WshFailed = 2
Const WshFinished = 1
Const WshRunning = 0

2,执行参数
Run 的后两个参数,一个是 cmd 窗口的风格,一个是是否等待执行完成。
最后一个参数很有用,如果你希望等待本次 cmd 执行的程序结束后,再执行run后面的语句,设置这个参数为true,否则后面的语句将不等待cmd窗口完成,直接运行。
另外,如果你使用 exec 方法的时候,如果希望等待cmd中程序执行完后,再执行后面的语句,也可以通过下面的方法:
oExec.StdErr.ReadAll() 或者 oExec.StdOut.ReadAll()
道理上也应该好理解,要得到输出的信息,肯定要 cmd 执行完后才会有输出的。

Ws.Run 函数的参数:

Set Ws = CreateObject("Wscript.Shell")
Ws.run "notepad.exe",,
run 函数有三个参数:
第一个参数是你要执行的程序的路径,若路径中存在空格,记得要用""括起来。
如"""C:\Program Files\nn.exe"""的形式或者Chr(34)&"C:\Program Files\nn.exe"&Chr(34)的形式。
第二个参数是窗口的形式,0是在后台运行;1表示正常运行;2表示激活程序并且显示为最小化;3表示激活程序并且显示为最大化;一共有10个这样的参数如下表。
第三个参数是表示这个脚本是等待还是继续执行,如果设为了 true,脚本就会等待调用的程序退出后再向后执行。
其实,run 做为函数,前面还有一个接受返回值的变量,一般来说如果返回为0,表示成功执行,如果不为0,则这个返回值就是错误代码,可以通过这个代码找出相应的错误。

窗口风格 说明
0 隐藏一个窗口并激活另一个窗口。
1 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。第一次显示该窗口时,应用程序应指定此标志。
2 激活窗口并将其显示为最小化窗口。
3 激活窗口并将其显示为最大化窗口。
4 按最近的窗口大小和位置显示窗口。活动窗口保持活动状态。
5 激活窗口并按当前的大小和位置显示它。
6 最小化指定的窗口,并按照 Z 顺序激活下一个顶部窗口。
7 将窗口显示为最小化窗口。活动窗口保持活动状态。
8 将窗口显示为当前状态。活动窗口保持活动状态。
9 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。还原最小化窗口时,应用程序应指定此标志。
10 根据启动应用程序的程序状态来设置显示状态。

参数(的)详细信息可以参考 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

注:经过实验验证,执行一般的exe,建议使用Exec()

参数 程序 激活 状态 函数 最小 活动 信息 最大 位置 大小 属性 控制台 错误 控制 对象 三个 应用程序 形式 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 幼儿网络安全故事 魔兽世界怎么查询服务器任务 软件开发要不要经常加班 姑苏区进口服务器咨询客服 数据库的表的字段默认值怎么修改 网络安全 三级等保 介绍新的软件开发技术 服务器的构成 沈阳公司软件开发哪家好 如何正确理解网络安全 网络安全服务项目的资质要求 做软件开发该学什么专业 数据库文件使用中不复制粘贴 软件开发语法怎么学 太库科技 服务互联网专区 可用的时间服务器地址 雷泽科技互联网有限公司 苹果12服务器出问题怎么解决 网络安全保障包括哪四个方面 华为h22x-05服务器闪红灯 长宁区什么是网络技术转让操作 应飞网络技术有限公司 我想学网络技术培训排行前十 山西软件开发解决方案公司 福州定制app软件开发 个人博客服务器推荐 数据库新建用户 权限设置 我的世界15.2服务器 国家支持网络安全技术的什么 mysql锁定多行数据库
0