1

我正在尝试从进程重定向标准输出,但我想逐行重定向作为其他进程输出,而不是一次全部重定向。现在我的代码如下所示:

proc->StartInfo->FileName = "ping.exe";
proc->StartInfo->UseShellExecute = false;
proc->StartInfo->RedirectStandardOutput = true;
proc->StartInfo->Arguments = "-n 1 www.google.com";
proc->Start();

StreamReader^ stream = proc->StandardOutput;


if(stream){
    //String^ s = stream->ReadToEnd();
    //Console::WriteLine(s);
    proc->WaitForExit();
    while(stream->Peek() >= 0)
    {
        Console::WriteLine(stream->ReadLine());
    }

}

但它所要做的就是在打印所有 Ping 输出之前等待进程退出。如果您在本机运行 ping,您可以看到输出会随着 HTTP 请求的发出而定期出现。我基本上希望输出排队并以相同的方式逐行重新定向。

4

1 回答 1

0

知道了:

String^ s;
        //Console::WriteLine(s);
        //proc->WaitForExit();
        while(s=stream->ReadLine())
        {
            Console::WriteLine(s);
        }

这有效

于 2013-06-14T20:35:58.897 回答