使用 .NET 使用同一进程执行多个命令行
在这篇文章中,我们解决了在不创建每个都有新的流程。目标是启动 DOS 命令 shell,转换到 MySQL 命令 shell,并无缝执行命令。
提供的初始代码片段尝试使用 ExecuteCommand 方法来实现此目的。然而,为了提高效率并避免创建多个进程,需要更精细的方法。
解决方案在于重定向标准输入并利用 StreamWriter 将命令引导到现有进程中。下面是修改后的代码:
Process p = new Process(); ProcessStartInfo info = new ProcessStartInfo(); info.FileName = "cmd.exe"; info.RedirectStandardInput = true; info.UseShellExecute = false; p.StartInfo = info; p.Start(); using (StreamWriter sw = p.StandardInput) { if (sw.BaseStream.CanWrite) { sw.WriteLine("mysql -u root -p"); sw.WriteLine("mypassword"); sw.WriteLine("use mydb;"); } }
在此代码中,我们创建一个 Process 对象并将其配置为使用 cmd.exe。通过将 RedirectStandardInput 设置为 true,我们可以启用标准输入的重定向。然后,我们实例化一个 StreamWriter 对象,并使用它直接将命令写入进程的输入流。
这种方法允许您在同一进程中执行多个命令,从而简化应用程序的流程。
以上是如何在单个 .NET 进程中执行多个 DOS 和 MySQL 命令?的详细内容。更多信息请关注PHP中文网其他相关文章!