如果是关于VBScript的话,我并没有真正尝试过,但我有机会通过论坛阅读很多内容,实际上昨天我帮助某人查看了他的脚本无法正常工作的原因并找到了解决方案。所以我在本地修改了这个脚本并按照我想要的方式进行操作,但是在其他人的一面,其中一个对象无法初始化。
有罪的行就像
Set WshNet = WScript.CreateObject("WScript.Network")
另一个人被告知要删除WScript的东西,它似乎适用于提问者方。
我首先想到它可能与我身边的Wscript.exe和那个人身上的CScript.exe(我的假设)的使用有关,但是我在命令行中检查了它,无论如何它都有用。 那么,我想知道和理解的是为什么会发生这种情况? 为什么调用CreateObject的脚本适用于“WScript”。但在另一个系统上,您需要删除“WScript”。保持工作? 谢谢你的时间和答案。 ;) 最好的问候。
答案 0 :(得分:3)
“WScript.CreateObject”或“WScript.Echo”中的“WScript”是c | wscript.exe脚本主机提供的(对象名称)。如果你在/在其他主机下运行VBScript(例如ie或mshta),则没有这样的对象。
语言本身有一个(不同的!,详见文档)“CreateObject”函数,可以在所有VBScripts主机下使用。因此,使用普通的“CreateObject”是安全的。
“WScript.Network”中的WScript是可以安装在您的计算机上(或不安装)的COM对象的ProgId的一部分。那些“名字”为“WScript”的COM对象与c | wscript.exe提供的WScript对象完全不同。
所以我的第一个假设是:“某人”在/或ie或mshta下执行代码并通过删除“WScript”来解决问题。来自“WScript.CreateObject”,即回退到VBScript自己的CreateObject。