我尝试过很多不同的关键字,例如Echo
,return
,print
,WScript.echo()
等等。我无法找到从{返回值的方法{1}}文件到js
文件。
我的bat
文件的简化版本是对bat
文件的简单调用,并根据返回的js
ERRORLEVEL
我的"myfile.js"
IF ERRORLEVEL 1 GOTO Warnings
IF ERRORLEVEL 0 GOTO Success
:Warnings
ECHO Warning
GOTO End
:Success
ECHO Success
文件执行我需要它执行的操作,并将错误计数存储在var中:
JScript
我的目标是返回一个状态,告诉我是否有错误,所以基本上,我想要做的就是:
.
.
.
var errorCount = tci.GetLastResultDescription().ErrorCount);
然而,当然,如果这不容易。有没有办法将值传递回if (errorCount>0)
return 1;
else
return 0;
文件?
答案 0 :(得分:1)
不确定。你可以用
WSH.Quit(tci.GetLastResultDescription().ErrorCount);
...这将使cscript
以errorcount的错误级别退出。如果您更喜欢布尔退出状态,那么
WSH.Quit(tci.GetLastResultDescritpion().ErrorCount ? 1 : 0);
您也可以使用WSH.Echo
将其作为字符串传递,但这需要在cscript
循环内执行for /f
来捕获输出。如果我是你,我会使用WSH.Quit(n)
。
对于它的价值,批处理+ JScript在混合格式中工作得非常好。您可以将myfile.js和myfile.bat组合成一个hybrid.bat脚本。
@if (@CodeSection == @Batch) @then
@echo off
setlocal
cscript /nologo /e:JScript "%~f0" && (
>&2 echo exit status was 0
) || (
>&2 echo exit status was non-zero
)
goto :EOF
@end // end batch / begin JScript chimera
WSH.Quit(Math.round(Math.random()));
有关更多示例,请参阅David Ruhmann's demo Gist。