如果是关于VBScript的,我并不是真正的实验,但我有机会通过论坛阅读了很多东西,实际上昨天我帮助某人检查了他的脚本不工作的原因,并为他找到了解决方案。所以我在本地修改了这个脚本,并以我想要的方式完成了它,它工作了,但在另一个人的一端,其中一个对象无法初始化。
被牵连的那行是这样的
Set WshNet = WScript.CreateObject("WScript.Network")另一个人被告知删除WScript的东西,它似乎在提问端起作用。
我最初认为这可能与在我这端使用Wscript.exe和在那一端使用CScript.exe (我的假设)有关,但我在命令行中检查了这一点,它仍然有效。所以,我想知道和理解的是为什么会发生这种情况?为什么调用CreateObject的脚本可以与“WScript”一起使用。但在另一个系统上,您需要删除那个“WScript”。让它继续工作吗?感谢您的时间和答案。;)致以最良好的问候。
发布于 2012-01-19 02:44:43
"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对象完全不同。
所以我的第一个假设是:“某人”执行了/in ie或mshta下的代码,并通过删除“WScript”解决了问题。从"WScript.CreateObject",也就是通过回退到VBScript自己的CreateObject。
https://stackoverflow.com/questions/8915052
复制相似问题