重定向时保留CMD输出格式

本文关键字:输出 格式 CMD 保留 重定向 | 更新日期: 2023-09-27 18:16:59

现在我有一个应用程序,用户可以将一些参数传递到进程中,并在文本框和/或文本文件中获得输出。但是,输出的格式与通过命令提示符运行这些进程时的格式相同。它们只是逐行阅读,没有适当的段落和间距。是否有保留原始输出的方法?下面两个相关的函数:

    //function called via a button to write to textbox
    // userInput is the textbox's name
    private void call_Process(object sender, EventArgs e)
    {
        Process process = new Process();
        process.StartInfo.FileName = selectedFilePath;
        process.StartInfo.Arguments = string.Format("{0}", userInput.Text);
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.RedirectStandardError = true;
        process.StartInfo.RedirectStandardOutput = true;
        process.StartInfo.CreateNoWindow = true;
        try
        {
            process.Start();
        }
        catch (Exception err)
        {
            MessageBox.Show(err.Message);
        }
        while (!process.StandardOutput.EndOfStream)
        {
            string line = process.StandardOutput.ReadLine();
            processOutput.Text += line;
        }
     }

    //function called via button to write to textfile
    private void write_To_File(object sender, EventArgs e)
    {
        OpenFileDialog openfile = new OpenFileDialog();
        openfile.InitialDirectory = "c:''";
        openfile.Filter = "All Files (*.*)|*.*";
        openfile.FilterIndex = 1;
        if (openfile.ShowDialog() == true)
        {
            TextWriter tw = new StreamWriter(openfile.FileName);
            tw.WriteLine(processOutput.Text);
            tw.Close();
        }
     }

重定向时保留CMD输出格式

根据@aschipfl:

的建议

processOutput控件和

使用固定字号字体

processOutput.Text += (line + Environment.NewLine);