如何从C#代码中与命令提示符进行交互?

时间:2009-10-29 05:36:30

标签: c# .net process command-prompt

我正在尝试从代码中与windows命令提示符进行交互。我的目标是显示提示,输入一些命令,显示输出,然后重复。但似乎无法让前三个同时工作。

      private void button2_Click(object sender, EventArgs e)
      {
        Process proc = new Process();
        proc.StartInfo.FileName = "cmd";
        proc.StartInfo.CreateNoWindow = true;
        proc.StartInfo.UseShellExecute = false;
        proc.StartInfo.RedirectStandardOutput = true;
        proc.StartInfo.RedirectStandardInput = true;

        proc.Start();
        StreamReader k = new StreamReader(proc.StandardOutput.BaseStream);

        textBox2.Text = k.ReadToEnd();            
       }

以上代码只是挂起。如果我没有设置RedirectStandardInput,那么我可以显示整个提示。如果我关闭StandardInput的编写器,我可以得到一个命令来运行,但没有看到提示,或者能够重复它。那么如何才能获得显示,运行命令和反复显示输出的提示?

我希望重现Console2的命令行行为,但我对它的源代码感到有些不知所措。

2 个答案:

答案 0 :(得分:1)

检查http://www.codeproject.com/cs/library/CommandLineHelper.asp

[marc_s]该网址导致找不到404页。

正确的网址最有可能是:http://www.codeproject.com/KB/string/CommandLineHelper.aspx

答案 1 :(得分:-1)

我认为你不能。如果显示控制台命令“提示”,则无法读取输出。我认为如果你阅读过程的输出,你需要绘制自己的命令提示符。