C# 每行运行cmd行

C# 每行运行cmd行,c#,cmd,C#,Cmd,我正在编写一个应用程序。我想从文本变量一步一步地运行这个过程,然后在文本框中显示它。 这是我的代码: void RunCmd(string cmd){ StringCollection values = new StringCollection(); p = new System.Diagnostics.Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectS

我正在编写一个应用程序。我想从文本变量一步一步地运行这个过程,然后在文本框中显示它。 这是我的代码:

void RunCmd(string cmd){
    StringCollection values = new StringCollection();
        p = new System.Diagnostics.Process();
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardInput = true;
        p.StartInfo.RedirectStandardOutput = true;

        p.StartInfo.FileName = @"cmd";
        p.StartInfo.Arguments= cmd;
        p.StartInfo.CreateNoWindow = true;
        p.Start();

        p.OutputDataReceived += (s, e) => {
            lock (values) {
                values.Add(e.Data);
            }
        };

        p.BeginOutputReadLine();
        foreach (string sline in values)
            txtresult.AppendText(Environment.NewLine + sline);
}

void btnAction_Click(object sender, EventArgs e)
{
    RunCmd("/c test.exe ABC && test.exe A5");
    RunCmd("test.exe 22");
}

它不工作。Txtresult为空

你所说的表单隐藏是什么意思??
start.CreateNoWindow=true
将隐藏您的应用程序…我的意思是mainform不显示。我看不到您的示例似乎不完整-例如,RunCmd声明为没有任何参数,但您正在传入字符串?我怀疑reader.ReadToEnd()正在阻塞-您是否尝试在该行上放置断点,并查看是否存在这种情况?结果是否包含任何内容?隐藏表单是什么意思??
start.CreateNoWindow=true
将隐藏您的应用程序…我的意思是mainform不显示。我看不到您的示例似乎不完整-例如,RunCmd声明为没有任何参数,但您正在传入字符串?我怀疑reader.ReadToEnd()正在阻塞-您是否尝试在该行上放置断点,并查看是否存在这种情况?结果包含什么吗?