我试图在32位Windows 7 PC上使用Windows Script Host 5.8运行JScript脚本。此脚本是开源软件项目的更大构建工作的一部分,其中ActiveXObject作为脚本的一部分创建。这无法运行,但我怀疑特定脚本没有错,而是我的本地Windows Scripting Host(WSH)设置。
我根据以下'裸骨来推断这一点。我用一行测试脚本运行的测试:
我使用记事本准备一个脚本,该脚本保存为' test.js'并包含以下行:
var strLit = "This is a string literal.";
然后我使用以下命令执行上述脚本:
cscript / e:jscript test.js
这似乎成功运行,当然没有返回输出,但严重没有错误信息。
然后我将脚本更改为仅包含以下行:
print("Hello World!");
使用与上述相同的命令运行时,会收到以下错误消息:
Microsoft JScript运行时错误:预期的对象
然后我将脚本更改为仅包含以下行:
var fso = new ActiveXObject("Scripting.FileSystemObject");
使用与上述相同的命令运行时,会收到以下错误消息:
Microsoft JScript运行时错误:自动化服务器无法创建对象
这是脚本的第三个版本,其中包含上述开源软件脚本中失败的行。但是,基于成功创建字符串变量脚本,我推断WSH在某种程度上起作用。但是,“你好世界”的事实是脚本失败,以及ActiveXObject的失败表明可能无法在我的计算机上正确设置带有JScript引擎的WSH或以其他方式运行。
我还推断,这可能与Internet Explorer安全级别无关,因为此脚本是从命令行运行的,没有指向Internet Explorer的链接。
我已尝试解决此问题:
确保Windows将文件与扩展名' .js'相关联。与WSH,虽然使用' / e:'如上所述在调用脚本时切换,无论如何这都不是问题。
使用管理员提升的命令提示符,使用以下命令在我的计算机上重新注册脚本组件:
regsvr32%systemroot%\ system32 \ vbscript.dll regsvr32%systemroot%\ system32 \ jscript.dll regsvr32%systemroot%\ system32 \ dispex.dll regsvr32%systemroot%\ system32 \ scrobj.dll regsvr32%systemroot%\ system32 \ scrrun.dll regsvr32%systemroot%\ system32 \ wshext.dll regsvr32%systemroot%\ system32 \ wshom.ocx
以上所有命令都成功运行,但最后两个命令除外,其中收到以下错误:
模块" C:\ Windows \ system32 \ wshext.dll"已加载,但对DllRegisterServer的调用失败,错误代码为0x80040201
模块" C:\ Windows \ system32 \ wshom.ocx"已加载,但对DllRegisterServer的调用失败,错误代码为0x80040201
我会从上面的测试中推断出以下内容:
有没有人对这里可能存在的问题有任何想法,特别是脚本三?上面脚本3中的错误消息已在Internet Explorer安全级别的上下文中在线广泛讨论,但由于这是在命令行上运行的脚本,我无法看到此解决方案将如何解决此问题。
非常感谢任何想法。
由于
杰森