我需要在我的c#程序中执行此操作。运行命令并等待在c#中完成#
Process process = LaunchCommandWindow("Special args and environment set")
process.StandardInput.WriteLine("cmd1");
process.StandardInput.WriteLine("cmd2");
//Parse logs
using (Streamreader sr = new())
{ etc etc..}
我的命令执行正确,但问题是,解析记录代码犯规等待CMD1和CMD2执行完成。我无法致电退出和处理。 waitforexit因为在解析日志之后,我有更多的命令可以执行。
以下是如何设置流程启动信息。 LaunchCommandWindow()
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = Path.Combine(Environment.SystemDirectory, "cmd.exe");
startInfo.Arguments = "/K " + newEnvironmentArgs;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
return process;
我如何解析日志代码等待CMD2完成?
谢谢。
这将工作,虽然主线程将进入忙碌的等待状态,同时它会查找完成消息。一个新的线程会阻止程序进入“无响应”状态。 – Jeff 2011-02-01 19:10:40
+1为了做到这一点,他还需要将`RedirectStandardOutput`设置为true。 – 2011-02-01 19:10:54