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 に答える