我正在尝试从我的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();
}
答案 0 :(得分:3)
Cmd.exe
在您告诉它之前不会退出 - 您正在等待它完成,但它正在等待您的下一个命令。
尝试process.StandardInput.WriteLine("exit");
告诉进程退出。