Tag: 控制台重定向

使用Process实时控制台输出重定向

我正在使用VBOXMANAGE来“导出”客户机。 VBOXManage是一个控制台应用程序,可以控制来宾主机的来宾行为。 由于export命令是一个很长的进程,它返回进程更新,如下所示: 0%… 10%… 20%… 30%… 100% 我正在编写一个C#应用程序,它将使用Process调用VBOXManage。 这是我的代码: Process VBOXProc = new Process(); VBOXProc.StartInfo.FileName = VBOXMANAGE; VBOXProc.StartInfo.Arguments = Arguments; VBOXProc.StartInfo.UseShellExecute = false; VBOXProc.StartInfo.CreateNoWindow = true; VBOXProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; VBOXProc.StartInfo.RedirectStandardError = true; VBOXProc.StartInfo.RedirectStandardOutput = true; VBOXProc.OutputDataReceived += new DataReceivedEventHandler(VBOXProc_OutputDataReceived); VBOXProc.ErrorDataReceived += new DataReceivedEventHandler(VBOXProc_ErrorDataReceived); VBOXProc.EnableRaisingEvents = true; VBOXProc.Start(); VBOXProc.BeginOutputReadLine(); VBOXProc.BeginErrorReadLine(); VBOXProc.WaitForExit(); 这很好,除了每个LINE读取输出。 这意味着过程更新“0%… 10%… 20%… […]