wsh 是 VBScript 中的保留字吗?

Is wsh a reserved word in VBScript?

在 Windows 7,我在 VBScript 中收到以下行的错误:

Set wsh = WScript.CreateObject("WScript.Shell")

错误:

Microsoft VBScript runtime error: Wrong number of arguments or invalid property assignment: 'wsh'

使用 wsh 以外的任何名称都可以。

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

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

回答问题后更新:

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

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

wsh.Echo "foo"
wsh.StdErr.WriteLine "bar"
wsh.Quit 42

而不是

WScript.Echo "foo"
WScript.StdErr.WriteLine "bar"
WScript.Quit 42

不过据我所知,文档中并未涵盖这一点。


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

Dim wsh
Set wsh = CreateObject("WScript.Shell")

但是,请注意,这样做会完全掩盖原始标识符,即如果不离开定义变量的上下文(如果是全局变量,则意味着重新启动),您将无法恢复原始行为解释器),因为你 can't un-dim a variable.