中国开发网: 论坛: 程序员情感CBD: 贴子 217629
品雪: [技术帖]有人碰到过吗? win script (js) 中读取子进程StdOut时,如果有快速而大量的输出会冻住,量不大时正常。
win script (js) 中读取子进程StdOut时,如果有快速而大量的输出会冻住,量不大时正常。

var fso = new ActiveXObject("Scripting.FileSystemObject");
var dir = fso.GetFolder(".");
var logFile = fso.OpenTextFile("batch.log", 2 , true);
var passFile = fso.OpenTextFile("pass.log", 2 , true);
var failFile = fso.OpenTextFile("fail.log", 2 , true);
var fc = new Enumerator( dir.Files );
var shell = new ActiveXObject("WScript.Shell" );

var f,ret;
for (; !fc.atEnd(); fc.moveNext() )
{
f = fc.item();
if ( fso.GetExtensionName( f.Name ) == "g" )
{
cmd = "..\\..\\gc.exe "+f.Name;
WScript.Echo( cmd );
ret = shell.Exec( cmd );
while ( ret.Status == 0 )
{
while ( ! ret.StdOut.AtEndOfStream )
{
logFile.Write( ret.StdOut.ReadAll() );
}
WScript.Sleep( 100 );
}
logFile.Write( f.Name + "\t\t:" );
code = ret.ExitCode;
if ( code == 0 )
{
logFile.WriteLine(" passed");
passFile.WriteLine( f.Name );
}else{
logFile.WriteLine(" failed to be compiled, " + code );
failFile.WriteLine( f.Name );
}
}
}

f = null;
dir = null;
fso = null;
logFile = null;

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录