我从命令窗口运行命令,如下所示:
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C " + command + "> " + userProfile + @"\cmdoutput.txt";
process.StartInfo = startInfo;
process.Start();
下一行代码读取文本文件并根据需要操作数据。但是,如果我不等待cmd进程结束,它将读取一个空文本文件。我想到了:
不使用文本文件
等几秒钟
检查命令提示符进程是否正在运行
答案 0 :(得分:0)
System.Diagnostics.Process
类有一个方法WaitForExit
。正如我理解你的问题,那应该做你想要的。
你应该可以做到,
process.Start();
process.WaitForExit();
如果需要,您还可以传递int
超时。
当然,这假设您运行的应用程序将在完成后退出。如果情况并非如此(重新考虑那个!),你将不得不做其他事情,比如民意调查。