在单独的进程中运行多个JScript文件

时间:2009-11-04 16:43:51

标签: scripting javascript wsh

我正在寻找一种方法来在与我的主脚本分开的进程中启动多个脚本,但是这样他们可以访问我声明的变量的副本。请考虑以下示例:

Serializable.js

// Represents serializable data.
function Serializable() { /* ... */ }

SecondaryScript.wsf

// Serializable is not defined here!
FakeMoney.prototype = new Serializable();

function FakeMoney(amount) { /* ... */ }

MainScript.wsf

<job>
    <script language="JScript" src="Serializable.js"></script>
    <script language="JScript">
        var WshShell = new ActiveXObject("WScript.Shell");

        // `Serializable` is defined here...

        var oExec = WshShell.Exec("cscript SecondaryScript.js");

        WScript.Echo(oExec.Status);
    </script>
</job>

在单独的流程中运行Serializable时,有没有办法为SecondaryScript.js中的代码定义SecondaryScript.js

1 个答案:

答案 0 :(得分:1)

您可以使用Serializable.js和SecondaryScript创建不同的wsf,并使用exec从第一个wsf文件运行它。

您还可以尝试使用事件在脚本之间使用WScript对象传递变量,或者使用WshRemote对象(本地)来获取脚本状态。

事实上,这似乎与您所解释的最佳匹配: MSDN上的Running Scripts Remotely。同样,您可以在本地执行此操作以实现目标。