我想從我的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執行單個命令並退出。 –