品雪:
				[技术帖]有人碰到过吗? win script (js) 中读取子进程StdOut时,如果有快速而大量的输出会冻住,量不大时正常。
 
			[阅读: 525] 2005-10-19 07:20:43
			
				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;