WSH 5.7 的 shell.Run 执行错误的脚本主机引擎?
我使用 WSC(用 JScript 编写并使用 scrobj.dll 运行的 COM 服务器),它还使用 shell.Run("TheOtherScript.js"); 启动其他脚本文件。
WSC 服务器使用新的 ActiveXObject(PROGID) 进行实例化。在 WSH 5.6 之前,我可以使用命令
WScript //H:CScript
或 //H:WScript 设置 shell.Run 的执行引擎来获取我需要的引擎。对于交互模式,我需要在 WScript.Echo 上弹出消息框的 WScript;对于禁止的非交互模式,因为它保留执行。
更新到 WSH 5.7 后,TheOtherScript.js 中的 WScript.Echo 始终会导致 MessageBox,与我之前传递的 //H: 参数无关。这会中断所有无人值守的脚本执行。
我认为这是 WSH 5.7 中的一个错误,什么时候可以修复它,我该如何构建解决方法?
I use a WSC (a COM server written in JScript and run with scrobj.dll) that starts also other script files using shell.Run("TheOtherScript.js");
The WSC server is instantiated with new ActiveXObject(PROGID). Until WSH 5.6 I could set the execution engine for shell.Run with the command
WScript //H:CScript
or with //H:WScript to get the engine I need. For interactive mode I need WScript that pops up a message box on WScript.Echo; for non-interactive mode that is prohibited, since it holds the execution.
After update to WSH 5.7 the WScript.Echo in TheOtherScript.js always causes a MessageBox, independend of the //H: parameter I passed before. This breaks all unattended script execution.
I think this is a bug in WSH 5.7, when can it be fixed, how can I build a workaround?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要更改服务器来控制应使用哪个脚本引擎。避免所有客户端的最好方法是定义一个环境变量来控制选择。
You need to change the server to control which scripting engine should be used. To avoid all clients to best way is to define an environment variable to control the selection.
其中
???
是您要使用的引擎。where
???
is the engine you want to use.