首頁 >後端開發 >C++ >如何在單一 .NET 進程中執行多個 DOS 和 MySQL 指令?

如何在單一 .NET 進程中執行多個 DOS 和 MySQL 指令?

Barbara Streisand
Barbara Streisand原創
2024-12-29 15:39:12380瀏覽

How to Execute Multiple DOS and MySQL Commands within a Single .NET Process?

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn