コンソールアプリケーションプロセスを開始し、.NETでその出力をキャプチャできます このメソッドは、イベント処理プログラムを使用して、受信した出力を文字列に追加します。出力の非同期読み取りを開始するためにに電話します。デフォルトでは、子プロセスが終了するまではブロックされ、出力を完全にキャプチャできます。
出力を読み取る別の方法は次のとおりです
<code class="language-csharp">string retMessage = string.Empty; ProcessStartInfo startInfo = new ProcessStartInfo(); Process p = new Process(); startInfo.CreateNoWindow = true; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardInput = true; startInfo.UseShellExecute = false; startInfo.Arguments = command; startInfo.FileName = exec; p.StartInfo = startInfo; p.Start(); p.OutputDataReceived += (sender, args) => retMessage += args.Data; // 开始异步输出读取。 p.BeginOutputReadLine(); p.WaitForExit(); return retMessage;</code>
この単純な方法は多くの場合、すべての出力を一度に読み取ることに注意する必要があります。イベント処理手順を使用すると、非同期出力キャプチャを提供できます。 OutputDataReceived
以上が.NETでコンソールアプリケーション出力を効率的にキャプチャする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。