2

このようなコードを見つけました。プロセスを実行し、書き込んだ内容を標準出力に出力します。問題は、プロセスが終了するまで何も出力されず、非常に長い時間がかかる (またはまったく出力されない) ことです。したがって、出力をそのまま印刷したいと思います。どうやってやるの?

var startInfo = new ProcessStartInfo("cmd", "/c sleepy.bat")
    {RedirectStandardOutput = true, UseShellExecute = false, CreateNoWindow = true };
var p = new Process(){StartInfo = startInfo};
p.Start();
string output = p.StandardOutput.ReadToEnd();
Console.WriteLine(output);

どこにいるsleepy.bat可能性があります

echo "About to execute really slow query.."
sleep 20
echo "Finished!"
4

1 に答える 1

2

を使ってみてくださいp.StandardOutput.BeginOutputReadLine()OutputDataReceivedイベントのプロセスからの出力を受け取ります。

拡張例については、MSDN の記事をご覧ください。

于 2013-04-10T09:21:48.740 に答える