Befehle nacheinander innerhalb eines einzelnen Prozesses mit .NET ausführen
Entwickler stehen oft vor der Notwendigkeit, mehrere Befehle in einer Konsolenumgebung auszuführen, ohne einen zu erstellen separater Prozess für jeden Befehl. Dies ist besonders nützlich, wenn die Befehle miteinander verbunden sind und in einer bestimmten Reihenfolge ausgeführt werden müssen.
Frage:
Bei der Ausführung mehrerer Befehle mit dem Befehl „ .NET“-Framework. Wie können Sie insbesondere vermeiden, für jeden Befehl einen neuen Prozess zu erstellen und Sonderzeichen wie „“ in der Befehlszeichenfolge zu verarbeiten?
Lösung:
Um mehrere auszuführen Um Befehle effizient auszuführen, können Sie einen einzelnen Prozess nutzen und Standardeingaben mithilfe eines StreamWriter an den Prozess umleiten. Nachfolgend finden Sie einen verbesserten Codeausschnitt, der Ihnen dabei hilft, dies zu erreichen:
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) { // Write commands sequentially to standard input sw.WriteLine("mysql -u root -p"); sw.WriteLine("mypassword"); sw.WriteLine("use mydb;"); } }
Erklärung:
In diesem Code erstellen wir einen Prozess mit dem Prozess-Klasse und geben Sie den Befehlsinterpreter cmd.exe als ausführbare Datei an. Außerdem setzen wir RedirectStandardInput auf true, damit wir in die Standardeingabe des Prozesses schreiben können.
Als nächstes verwenden wir einen StreamWriter, um Schreiben Sie mehrere Befehle nacheinander in die Standardeingabe des Prozesses. Es ist wichtig sicherzustellen, dass Sie einen StreamWriter speziell zum Schreiben von Textdaten verwenden, da das Schreiben von Binärdaten zu Fehlern führen kann.
Durch die Nutzung dieses Ansatzes können Sie mehrere Befehle innerhalb eines einzigen Prozesses ausführen , wodurch die Effizienz gesteigert wird und die Notwendigkeit mehrerer Prozesserstellungen entfällt.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Befehle nacheinander in einem einzigen .NET-Prozess ausführen und dabei Sonderzeichen verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!