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
wsh
是 WScript
对象的内置别名,允许您编写
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.
在 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
wsh
是 WScript
对象的内置别名,允许您编写
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.