Heim >Backend-Entwicklung >C++ >Wie führe ich mehrere DOS- und MySQL-Befehle in einem einzigen .NET-Prozess aus?

Wie führe ich mehrere DOS- und MySQL-Befehle in einem einzigen .NET-Prozess aus?

Barbara Streisand
Barbara StreisandOriginal
2024-12-29 15:39:12368Durchsuche

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

Mehrere Befehlszeilen mit demselben Prozess unter Verwendung von .NET ausführen

In diesem Beitrag befassen wir uns mit der Herausforderung, mehrere Befehle auszuführen, ohne einen zu erstellen jeweils ein neuer Prozess. Das Ziel besteht darin, die DOS-Befehlsshell zu initiieren, zur MySQL-Befehlsshell zu wechseln und einen Befehl nahtlos auszuführen.

Das ursprünglich bereitgestellte Code-Snippet versuchte, dies mithilfe der ExecuteCommand-Methode zu erreichen. Um jedoch die Effizienz zu steigern und die Erstellung mehrerer Prozesse zu vermeiden, ist ein verfeinerter Ansatz erforderlich.

Die Lösung besteht darin, Standardeingaben umzuleiten und einen StreamWriter zu verwenden, um Befehle in den vorhandenen Prozess zu leiten. Hier ist der überarbeitete Code:

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;");
    }
}

In diesem Code erstellen wir ein Process-Objekt und konfigurieren es für die Verwendung von cmd.exe. Indem wir RedirectStandardInput auf true setzen, aktivieren wir die Umleitung der Standardeingabe. Anschließend instanziieren wir ein StreamWriter-Objekt und verwenden es, um Befehle direkt in den Eingabestream des Prozesses zu schreiben.

Mit diesem Ansatz können Sie mehrere Befehle innerhalb desselben Prozesses ausführen und so den Ablauf Ihrer Anwendung optimieren.

Das obige ist der detaillierte Inhalt vonWie führe ich mehrere DOS- und MySQL-Befehle in einem einzigen .NET-Prozess aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn