用c# 做了一个 控制台程序,需要带参数执行在用一个c# 实用process。start 调用这个控制台程序怎么获取 执行时候 c#控制台 输出的值?

解决方案 »

  1.   

    Console.Write的值?应该没办法吧。都跨进程了
      

  2.   

    ProcessStartInfo.RedirectStandardOutput
      

  3.   

    ProcessStartInfo.RedirectStandardInput 属性using System;
    using System.IO;
    using System.Diagnostics;
    using System.ComponentModel;namespace Process_StandardInput_Sample
    {
       class StandardInputTest
       {
          static void Main()
          {
             Console.WriteLine("Ready to sort one or more text lines...");         // Start the Sort.exe process with redirected input.
             // Use the sort command to sort the input text.
             Process myProcess = new Process();         myProcess.StartInfo.FileName = "Sort.exe";
             myProcess.StartInfo.UseShellExecute = false;
             myProcess.StartInfo.RedirectStandardInput = true;         myProcess.Start();         StreamWriter myStreamWriter = myProcess.StandardInput;         // Prompt the user for input text lines to sort. 
             // Write each line to the StandardInput stream of
             // the sort command.
             String inputText;
             int numLines = 0;
             do 
             {
                Console.WriteLine("Enter a line of text (or press the Enter key to stop):");            inputText = Console.ReadLine();
                if (inputText.Length > 0)
                {
                   numLines ++;
                   myStreamWriter.WriteLine(inputText);
                }
             } while (inputText.Length != 0);
             // Write a report header to the console.
             if (numLines > 0)
             {
                Console.WriteLine(" {0} sorted text line(s) ", numLines);
                Console.WriteLine("------------------------");
             }
             else 
             {
                Console.WriteLine(" No input was sorted");
             }         // End the input stream to the sort command.
             // When the stream closes, the sort command
             // writes the sorted text lines to the 
             // console.
             myStreamWriter.Close();
             // Wait for the sort process to write the sorted text lines.
             myProcess.WaitForExit();
             myProcess.Close();      }
       }
    }
      

  4.   

    读取F:\test.txt文件内容:
    private void button1_Click(object sender, EventArgs e)
            {
                Process p = new Process();
                p.StartInfo.FileName = "cmd.exe";
      
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.CreateNoWindow = true;
                p.StartInfo.RedirectStandardInput = true;
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.RedirectStandardError = true;            
                p.Start();
                p.StandardInput.WriteLine(@"type F:\test.txt");
                p.StandardInput.WriteLine("exit");
                textBox1.AppendText(p.StandardOutput.ReadToEnd());
                p.Close();            
            }