使用.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中文網其他相關文章!