假设您需要运行一个非常简单的单行VBScript命令,比如获取昨天的某一天:
var result = [],
names = [],
index;
var scores = [
{"firstName":"John", "value": 89},
{"firstName":"Peter", "value": 151},
{"firstName":"Anna", "value": 200},
{"firstName":"Peter", "value": 22},
{"firstName":"Anna","value": 60}
];
scores.forEach(function (score) {
index = names.indexOf(score.firstName);
if (index === -1) {
index = names.push(score.firstName) - 1;
result.push({firstName: score.firstName, value: 0});
}
result[index].value += score.value;
});
console.log(result);
目前,我必须拥有一个单独的wscript.echo day(date()-1)
文件,然后运行它:
.vbs
或者,如果我不想单独维护脚本:
for /f %%a in ('cscript //nologo myscript.vbs') do set dd=%%a
现在我没有介意用于捕获输出的可怕echo wscript.echo day(date()-1) >temp.vbs
for /f %%a in ('cscript //nologo temp.vbs') do set dd=%%a
del /s temp.vbs >nul: 2>nul:
语句,我只想知道是否有办法避免必须维护单独的VBScript文件,或者动态创建和销毁一个。
类似的东西:
for
会很理想,但我知道cscript //nologo //exec wscript.echo day(date()-1)
不支持此功能。
有没有办法实现这一点,请记住我想将其输出捕获到cscript
脚本的变量中?
答案 0 :(得分:2)
您可以编写与回复Eval'ed参数相对应的一个脚本:
WScript.Echo Eval(WScript.Arguments(0))
或一个脚本,它回显由(第一个)参数指定的计算结果:
Select Case WScript.Aruments(0)
Case "prevday"
wscript.echo day(date()-1)
Case "answer"
WScript.Echo 4711
...