我想从我的C#程序运行命令行。为了保持简单,我所做的只是运行“dir”命令。然后我读取结果的每一行。当我到达输出结束时程序挂起。它什么都不做。以下是该计划。从C#运行命令行process.StandardOutput.ReadLine()挂起
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();
}
如果你只是想枚举文件夹中的文件,有更好的方法来做到这一点。 – Nasreddine
这段代码没有多少意义,你当然想要使用DirectoryInfo类。通常,使用/ c命令行选项让cmd.exe执行单个命令并退出。 –