WSH(JScript)将CLI参数传递给在内部激活的另一个脚本

时间:2015-08-17 12:10:06

标签: javascript command-line-interface jscript wsh

所以我有JScript脚本s1.js

var objArgs = WScript.Arguments;
WScript.Echo(objArgs.length)

使用WSH运行s1.js时 我得到了预期的WScript.Arguments

但是当我在内部运行s1.js时会变得棘手。假设我有另一个脚本s2.js

var F = new Function(strScript); // strScript is the content of s1.js
(F)("test");

运行s2.js时,无论使用哪个CLI参数,var objArgs = WScript.Arguments中定义的s1.js都会获得与s2.js相同的参数。

这并不让我感到惊讶,因为我认为var objArgs = WScript.Arguments是全局的,并由WSH设置。

问题

  1. 如何激活s1.jss2.js内部)并将CLI参数传递给它?
  2. s1.js如何区分运行它的两种不同方式并正确阅读其参数?

1 个答案:

答案 0 :(得分:1)

我不确定WScript,但它似乎是所有Js片段中的全球成员。我已经完成了一些基本测试,事实上,WScript.Arguments在所有实例中是相同的。你的问题的根源在新的Function()调用中,因为第一个N-1参数声明了参数的模板,以及最后一个函数的主体。

这是帮助我的答案 - > response