2

我正在尝试从我的 c# 程序运行命令行。为了简单起见,我所做的就是运行“dir”命令。然后我阅读了结果的每一行。当我到达输出的末尾时,程序挂起。它不做任何事情。下面是程序。

    static void Main(string[] args)
    {
        ProcessStartInfo startInfo = new ProcessStartInfo("Cmd.exe");

        startInfo.UseShellExecute = false;
        startInfo.RedirectStandardInput = true;
        startInfo.RedirectStandardOutput = true;

        Process process = new Process();
        process.StartInfo = startInfo;
        process.Start();

        List<string> output = new List<string>();

        process.StandardInput.WriteLine("dir");
        process.StandardInput.Flush();

        while (process.StandardOutput.ReadLine() != null)
        {

            output.Add(process.StandardOutput.ReadLine());

        }
        process.WaitForExit();
        process.Kill();
    }
4

1 回答 1

3

Cmd.exe在您告诉它之前不会退出 - 您正在等待它完成,但它正在等待您的下一个命令。

尝试process.StandardInput.WriteLine("exit");告诉进程退出。

于 2012-10-16T13:16:10.713 回答