WSH 5.7 的 shell.Run 执行错误的脚本主机引擎?

发布于 2024-09-11 02:38:32 字数 469 浏览 6 评论 0原文

我使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

帅的被狗咬 2024-09-18 02:38:32

您需要更改服务器来控制应使用哪个脚本引擎。避免所有客户端的最好方法是定义一个环境变量来控制选择。

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.

御弟哥哥 2024-09-18 02:38:32
shell.Run("cscript //E:??? TheOtherScript.js");

其中 ??? 是您要使用的引擎。

shell.Run("cscript //E:??? TheOtherScript.js");

where ??? is the engine you want to use.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文