标题:
[技术讨论]
vbs中的"Wscript"[属性与方法]
[打印本页]
作者:
czjt1234
时间:
2012-9-28 08:27
标题:
vbs中的"Wscript"[属性与方法]
本帖最后由 czjt1234 于 2012-10-25 22:55 编辑
Wscript 对象提供对 Windows 脚本宿主对象模型根对象的访问
属性
Application 当前的应用对象 "Windows Script Host"
Arguments 运行vbs时的参数的集合
BuildVersion wscript.exe 的内部版本号
FullName wscript.exe 的完整路径和文件名
Interactive 用户交互模式。默认值为 True
Name wscript.exe 的昵称 "Windows Script Host"
Path wscript.exe 的完整路径
scriptfullname 当前运行的vbs的完整路径和文件名
ScriptName 当前运行的vbs的文件名
Version wscript.exe 的版本
方法
ConnectObject 将对象的事件源连接到具有给定前缀的函数??
CreateObject 创建 COM 对象
DisconnectObject 断开已连接对象的事件源的连接??
Echo 弹出消息框
GetObject 用指定的 ProgID 检索现有的对象或从文件中创建新对象??
Quit 立即结束vbs
Sleep 暂停vbs,单位:毫秒
Timeout 延时结束vbs,单位:秒
Wscript 对象的属性、方法,都可以在 Script5.6.chm 里找到参考
-----------------------------------------------------------------------------
Wscript 对象的属性和方法,创建了
WshArguments 对象
WshNamed 对象
WshUnnamed 对象
作者:
czjt1234
时间:
2012-9-28 09:10
本帖最后由 czjt1234 于 2012-10-30 12:10 编辑
下面是 Wscript 对象的属性和方法的参数,及用法举例
代码测试环境:winxpsp3 IE8 Wscript版本5.7.0.18066
'-------------------------------------------------------------
Dim strRead, arrArguments, intNumber
strRead = wscript.scriptfullname '当前运行的vbs的完整路径和文件名
strRead = Wscript.ScriptName '当前运行的vbs的文件名
strRead = Wscript.FullName 'wscript.exe 的完整路径和文件名
strRead = Wscript.Path 'wscript.exe 的完整路径
strRead = Wscript.Name 'wscript.exe 的昵称 "Windows Script Host"
strRead = Wscript.Application '当前的应用对象 "Windows Script Host"
strRead = Wscript.Version 'wscript.exe 的版本
strRead = Wscript.BuildVersion 'wscript.exe 的内部版本号
Wscript.Timeout = 5 '5秒后结束vbs
Wscript.Sleep 3000 '延时3000毫秒
Wscript.Echo strRead '弹出消息框。标题栏 "Windows Script Host"
strRead = Wscript.Interactive '读取当前的用户交互模式。默认为 True
Wscript.Interactive = True|False '设定为 False 时,禁用vbs的输入输出命令
'-------------------------------------------------------------
Wscript.Quit (intErrorCode) '立即结束vbs。intErrorCode为可选返回值
下面是一个批处理调用intErrorCode返回值的例子
'----d:\test.vbs----
Wscript.Quit (99)
'----d:\test.bat----
@echo off
d:\test.vbs
echo %errorlevel%
pause
运行 d:\test.bat 可以看到返回值
'-------------------------------------------------------------
Wsh.Echo Wsh.FullName '
Wscript 可以简写为 Wsh
需要注意的就是如果用 Wsh 做变量,必须先 Dim Wsh 定义变量名
'-------------------------------------------------------------
作者:
Demon
时间:
2012-9-28 10:41
Err是VBS内置的,而不是wscript内置的。
作者:
czjt1234
时间:
2012-9-28 15:19
本帖最后由 czjt1234 于 2012-10-30 12:16 编辑
WScript 对象的 Arguments 属性创建 WshArguments 对象
WshArguments 对象提供对整个命令行参数集的访问
属性
Item 缺省属性。显示指定的项目
Count 参数的个数
Named 已命名的参数。比如 test.vbs /c:"aaa" 。返回 WshNamed 对象
Unnamed 未命名的参数。比如 test.vbs "aaa" 。返回 WshUnnamed 对象
方法
ShowUsage 在.wsf脚本文件里用以显示使用说明。在.vbs脚本文件里没实际用处
'-------------------------------------------------------------
WshArguments 对象的
Named 属性返回 WshNamed 对象
WshNamed 对象提供对已命名的参数的访问
属性
Item 显示指定的项目
Count 参数的个数
方法
Exists 查询某个命名参数是否存在。返回True|False
'-------------------------------------------------------------
WshArguments 对象的
Unnamed 属性返回 WshUnnamed 对象
WshUnnamed 对象提供对未命名的参数的访问
属性
Item 显示指定的项目
Count 参数的个数
方法
(无)
'-------------------------------------------------------------
下面是 WshArguments WshNamed WshNamed 对象的属性和方法的参数,及用法举例
代码测试环境:winxpsp3 IE8 Wscript版本5.7.0.18066
'-------------------------------------------------------------
新建 d:\test.vbs,代码如下:
Dim objArguments, objArgsNamed, objArgsUnnamed, intNumber
Set objArguments = WScript.Arguments
Set objArgsNamed = objArguments.Named
Set objArgsUnnamed = objArguments.Unnamed
MsgBox "共有参数 " & objArguments.count & "个" & vbCrLf & vbCrLf & _
"命名参数 " & objArgsNamed.count & "个" & vbCrLf & vbCrLf & _
"未命名参数 " & objArgsUnnamed.count & "个"
If objArgsNamed.Exists("C") Then
MsgBox "命名为 C 的参数: " & objArgsNamed.Item("C")
End If
objArguments.ShowUsage '弹出一个信息框。没啥用。在.wsf脚本文件里有用
MsgBox "枚举全部参数:"
For intNumber = 0 To objArguments.count - 1
MsgBox objArguments.Item(intNumber)
Next
MsgBox "枚举未命名参数:"
For intNumber = 0 To objArgsUnnamed.count - 1
MsgBox objArgsUnnamed.Item(intNumber)
Next
运行命令行
d:\test.vbs /c:CCC /d:"d f" "a s" 1 q
对照运行结果,可以看出vbs命令行参数的含义
'-------------------------------------------------------------
欢迎光临 批处理之家 (http://bathome.net./)
Powered by Discuz! 7.2