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 に答える