等待cmd命令结束后再继续
本文关键字:再继续 结束 命令 cmd 等待 | 更新日期: 2024-10-21 18:49:00
我从命令窗口运行一个命令,如下所示:
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进程结束,它将读取一个空的文本文件。我想到了:
不使用文本文件
- 由于我有其他限制,这不起作用,它确实需要放在文本文件中
等待几秒钟
- 我不知道这个命令需要多长时间,而且基于时间的解决方案通常都不好
检查命令提示进程是否正在运行
- 无论出于何种原因,用户可能正在运行另一个命令提示符
System.Diagnostics.Process
类有一个方法WaitForExit
。正如我理解你的问题,这应该是你想要的。
你应该能够做到,
process.Start();
process.WaitForExit();
如果需要,您还可以传递一个int
超时。
当然,这是假设您正在运行的应用程序将在完成后退出。如果不是这样(请重新考虑!),您将不得不做其他事情,比如轮询。