为什么我必须使用 WScript 编写 WScript.Echo 而它对于 CreateObject 不是强制性的?
Why do I have to write WScript.Echo with WScript while it's not mandatory for CreateObject?
在 VBScript 中,有很多用户写 WScript.CreateObject("...")
的示例,而同时 script56.chm 和其他相关文档建议只写 CreateObject("...")
。 似乎 的工作方式相同。
我想知道为什么 WScript.Echo
不一样(你不能只写 Echo
...)
我阅读了以下关于 WScript.CreateObject
背后原因的问题和评论,但似乎没有找到任何相关内容:What is the difference between CreateObject and Wscript.CreateObject?
还是我漏掉了什么?
你看到不协调是因为你认为你在两种情况下使用相同的东西,但你不是。
您有两个不同的元素可以协作 运行 您的脚本:脚本宿主和脚本引擎。脚本宿主是初始化处理所用语言的脚本引擎的可执行文件。在通常的客户端 OS 安装中,您至少有三个脚本主机(wscript.exe
、cscript.exe
、mshta.exe
),它们可以使用两个不同的脚本引擎(VBScript
和JScript
).
WScript.CreateObject
是脚本宿主(cscript.exe
或 wscript.exe
)公开的 WScript
对象的 方法 允许脚本引擎(正如所说 VBScript
和 JScript
原生于 OS,但您可以安装其他引擎)实例化一个 COM 对象。
CreateObject
(这里没有WScript
)是VBScript
脚本引擎的函数,与WScript
对象或脚本宿主。
两者同名,但不是一回事。在VBScript
中调用CreateObject
函数是"equivalent"在JScript
中使用new ActiveXObject( ... )
。在这两种情况下,您都使用脚本引擎公开的内容,而不是脚本宿主公开的内容。
例如,您可以在 .hta
文件中使用这两个(CreateObject
或 new ActiveXObject( ... )
)中的任何一个而不会出现问题,因为它们是脚本引擎的一部分,但是您可以不要在 .hta
文件中使用 WScript.CreateObject
,因为脚本宿主 (mshta.exe
) 不会将 WScript
对象暴露给脚本引擎 运行ning 代码。
在 VBScript 中,有很多用户写 WScript.CreateObject("...")
的示例,而同时 script56.chm 和其他相关文档建议只写 CreateObject("...")
。 似乎 的工作方式相同。
我想知道为什么 WScript.Echo
不一样(你不能只写 Echo
...)
我阅读了以下关于 WScript.CreateObject
背后原因的问题和评论,但似乎没有找到任何相关内容:What is the difference between CreateObject and Wscript.CreateObject?
还是我漏掉了什么?
你看到不协调是因为你认为你在两种情况下使用相同的东西,但你不是。
您有两个不同的元素可以协作 运行 您的脚本:脚本宿主和脚本引擎。脚本宿主是初始化处理所用语言的脚本引擎的可执行文件。在通常的客户端 OS 安装中,您至少有三个脚本主机(wscript.exe
、cscript.exe
、mshta.exe
),它们可以使用两个不同的脚本引擎(VBScript
和JScript
).
WScript.CreateObject
是脚本宿主(cscript.exe
或 wscript.exe
)公开的 WScript
对象的 方法 允许脚本引擎(正如所说 VBScript
和 JScript
原生于 OS,但您可以安装其他引擎)实例化一个 COM 对象。
CreateObject
(这里没有WScript
)是VBScript
脚本引擎的函数,与WScript
对象或脚本宿主。
两者同名,但不是一回事。在VBScript
中调用CreateObject
函数是"equivalent"在JScript
中使用new ActiveXObject( ... )
。在这两种情况下,您都使用脚本引擎公开的内容,而不是脚本宿主公开的内容。
例如,您可以在 .hta
文件中使用这两个(CreateObject
或 new ActiveXObject( ... )
)中的任何一个而不会出现问题,因为它们是脚本引擎的一部分,但是您可以不要在 .hta
文件中使用 WScript.CreateObject
,因为脚本宿主 (mshta.exe
) 不会将 WScript
对象暴露给脚本引擎 运行ning 代码。