wsh是VBScript中的保留字吗?

Sab*_*ncu 5 vbscript wsh

在Windows 7上,我的VBScript中的以下行出错:

Set wsh = WScript.CreateObject("WScript.Shell")
Run Code Online (Sandbox Code Playgroud)

错误:

Microsoft VBScript运行时错误:参数数量错误或属性赋值无效:'wsh'

使用除wsh工作之外的任何名称.

我在网上搜索了一些信息,但保留关键字的页面没有引用任何提及wsh.

我使用CMD处理器中的cscript命令运行上面的脚本.

问题解答后的更新:

将变量声明为Dim wsh覆盖其关键字状态,允许在脚本中使用它.在发布问题后遇到此信息,请访问:http://forums.devshed.com/visual-basic-programming-52/bizzare-finding-username-918597.html

Ans*_*ers 8

wshWScript对象的内置别名,允许您编写

wsh.Echo "foo"
wsh.StdErr.WriteLine "bar"
wsh.Quit 42
Run Code Online (Sandbox Code Playgroud)

代替

WScript.Echo "foo"
WScript.StdErr.WriteLine "bar"
WScript.Quit 42
Run Code Online (Sandbox Code Playgroud)

据我所知,文档没有涵盖这一点.


编辑:显然,您可以通过wsh在使用之前定义为变量来解决此问题:

Dim wsh
Set wsh = CreateObject("WScript.Shell")
Run Code Online (Sandbox Code Playgroud)

但请注意,这样做会完全掩盖原始标识符,即如果不离开定义变量的上下文(在全局变量的情况下意味着重新启动解释器),您将无法获得原始行为,因为你不能解开变量.