Wscript.Arguments是什么意思

wo890532 2012-10-11 11:29:42
小弟工作中突然要用到一些vbs知识,就稍微看了下,对于Wscript.Arguments不是很理解,从网上看了个例子,想运行下能更好的理解,结果运行不了,(小弟我没一点vbs基础,只有java基础,望高手指点下),下面是源码
test.vbs文件
Dim objArgs
Set objArgs = WScript.Arguments
Dim args0,argus1
If objArgs.count =0 Then
MsgBox "请输入启动参数!"
ElseIf objArgs(0).count =1 Then
If Wscript.Arguments(0)="Start" Then
Call startSE()
ElseIf objArgs(0)="Stop" Then
Call terminateSE()
ElseIf objArgs(0)="Moniter" Then
Call monitProcess()
End If
ElseIf objArgs(0).count =2 Then
MsgBox "请完成两个命令行参数部分的函数!"
End If
Function startSE()
MsgBox "进程启动了!"
End Function
Function terminateSE()
MsgBox "进程结束了"
End Function
Function monitProcess()
MsgBox "进程处于监控状态!"
End Function
下面是批处理文件test.bat
E:\vbs\test.vbs "Start"
结果提示错误:望高手指点下
缺少对象:'[string:stop]'
代码:800A01A8
wscript.arguments 和 objArgs.count 是什么意思
怎么更好的理解
...全文
1571 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
谢谢,听你一说,理解些,但提示错误还是不会解决,我在批处理文件已经输入一个"start"字符串参数,为什么还会提示Object required:'[srring:"Start"]',能具体说明下?小弟感激不尽
[/Quote]

其实就是因为你输入的大小写问题。

If Wscript.Arguments(0)="Start" Then

改成

If Lcase(Wscript.Arguments(0))="start" Then

就可以忽略大小写了
toury 2012-10-12
  • 打赏
  • 举报
回复
顾名思义,WScript.Arguments是WSH对象的参数集合。数组你肯定很熟悉了,这个集合有点像。
Set objArgs = WScript.Arguments 就是把这个参数集合“赋值”给一个新创建的对象变量objArgs ,便于后面的访问。在VB里创建并赋值给变量要用SET关键字

至于objArgs.count ,既然你理解了数组,就很容易联想到,那就是这个集合的元素数量,也就是有几个元素。为0就没有参数。
toury 2012-10-12
  • 打赏
  • 举报
回复
恭喜你。
顺便更正1楼一处笔误:"在VB里创建并赋值给变量要用SET关键字"
应该是在VB里创建并赋值给对象要用SET关键字

wo890532 2012-10-12
  • 打赏
  • 举报
回复
谢谢楼上,由于楼上的提示,代码改成下面就可以运行了,通过实例我在自己理解下
Dim objArgs
Set objArgs = WScript.Arguments
Dim args0,argus1
If objArgs.count =0 Then
MsgBox "请输入启动参数!"
ElseIf objArgs(0).count =1 Then
If Wscript.Arguments(0)="Start" Then
Call startSE()
ElseIf objArgs="Stop" Then
Call terminateSE()
ElseIf objArgs="Moniter" Then
Call monitProcess()
End If
ElseIf objArgs(0).count =2 Then
MsgBox "请完成两个命令行参数部分的函数!"
End If
Function startSE()
MsgBox "进程启动了!"
End Function
Function terminateSE()
MsgBox "进程结束了"
End Function
Function monitProcess()
MsgBox "进程处于监控状态!"
End Function
wo890532 2012-10-12
  • 打赏
  • 举报
回复
谢谢,听你一说,理解些,但提示错误还是不会解决,我在批处理文件已经输入一个"start"字符串参数,为什么还会提示Object required:'[srring:"Start"]',能具体说明下?小弟感激不尽
wo890532 2012-10-12
  • 打赏
  • 举报
回复
更正下,不知道为什么,原来的代码又正确了

4,008

社区成员

发帖
与我相关
我的任务
社区描述
它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。
社区管理员
  • vbScript社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧