VBScript 和 CreateObject 问题

猫IT*_*猫IT 1 vbscript createobject

如果是关于 VBScript,我并没有真正进行过实验,但我有机会通过论坛阅读了很多内容,实际上昨天我帮助某人检查了为什么他的脚本不起作用,并为他找到了解决方案。因此,我在本地修改了这个脚本,并按照我的方式进行了操作,它工作了,但在另一方,对象之一无法初始化。

受罪线就像

    Set WshNet = WScript.CreateObject("WScript.Network")
Run Code Online (Sandbox Code Playgroud)

另一个人被告知删除 WScript 的东西,它似乎在提问者方面起作用。

我首先认为这可能与我这边使用 Wscript.exe 和那个人那边使用 CScript.exe 有关(我的假设),但我在命令行中检查了这一点,无论如何它都有效。那么,我想知道和理解的是为什么会发生这种情况?为什么调用 CreateObject 的脚本可以与“WScript”一起使用。但在另一个系统上,您需要删除该“WScript”。让它继续工作?感谢您的时间和答复。;) 此致。

Ekk*_*ner 5

“WScript.CreateObject”或“WScript.Echo”中的“WScript”(对象的名称)由 c|wscript.exe 脚本主机提供。如果您在其他主机(例如 ie 或 mshta)下运行 VBScript,则不存在此类对象。

该语言本身有一个(不同!有关详细信息,请参阅文档)“CreateObject”函数,可以在所有 VBScripts 主机下/中使用。因此,为了安全起见,请使用普通的“CreateObject”。

“WScript.Network”中的 WScript 是可能安装在您的计算机上(或未安装)的 COM 对象的 ProgId 的一部分。那些“名字”为“WScript”的 COM 对象与 c|wscript.exe 提供的 WScript 对象完全不同。

所以我的第一个假设:“某人”在 ie 或 mshta 下/中执行了代码,并通过删除“WScript”解决了问题。来自“WScript.CreateObject”,即回退到 VBScript 自己的 CreateObject。