Senden von Befehlen an die Eingabeaufforderung cmd in C #

Für eine meiner Implementierungen arbeite ich an einem Tool, das Befehle / Ergebnisse zum / vom cmd-Fenster senden / abrufen soll. Alles funktioniert einwandfrei, aber der folgende Anwendungsfall kann nichts bewirken. Es scheint, als ob meine Anwendung auf etwas wartet (anstatt das Ergebnis anzuzeigen)

Von meinem Tool aus navigiere ich zum Python-Ordner. Aus dem Python-Ordner versuche ich, python.exe zu starten, aber zu diesem Zeitpunkt macht mein Editor nichts. es wartet einfach weiter.

Aus Rücksichtnahme verlinke ich hier auch das Video. Es wäre einfacher für euch zu verstehen, was ich zu sagen versuche.

Sehen Sie das Video hier (auf Youtube)

Ich füge auch den Code bei, den ich momentan habe.

            ProcessStartInfo info = new ProcessStartInfo("cmd.exe");

            string argument = null;
            if (!string.IsNullOrEmpty(startingDirectory) && System.IO.Directory.Exists(startingDirectory))
            {
               argument += @"cd\";
            }
            else
            {
                argument += "\"";
            }
            info.Arguments = argument;
            info.CreateNoWindow = true;
            info.RedirectStandardError = true;
            info.RedirectStandardInput = true;
            info.RedirectStandardOutput = true;
            info.UseShellExecute = false;
             this.shellProcess = System.Diagnostics.Process.Start(info);
            this.shellProcess.EnableRaisingEvents = true;
            //this.InputStream.AutoFlush = true;
            this.shellProcess.Exited += new EventHandler(ProcessExited);
            this.ErrorBeginRead();
            this.OutputBeginRead();

 private void OutputBeginRead()
    {
        this.shellProcess.StandardOutput.BaseStream.BeginRead(outputBuffer, 0, outputBuffer.Length, new AsyncCallback(this.OnOutputInput), this.shellProcess);
    }

        private void ErrorBeginRead()
    {
        this.shellProcess.StandardError.BaseStream.BeginRead(errorBuffer, 0, errorBuffer.Length, new AsyncCallback(this.OnErrorInput), this.shellProcess);
    }

Vielen Dank !

BEARBEITEN: Starten von Python ist nur ein Beispiel. Ich muss die gleiche Methode auch für andere normale cmd-Zeilenbefehle verwenden. Es wäre schön, wenn jemand darauf hinweisen könnte, was ich mit meinem Code falsch mache oder was ich tun muss, um die beabsichtigte Funktionalität zu erreichen.

EDIT 2: Die normalen cmd Befehle funktionieren einwandfrei. Die Kommandozeilen-Tools wie Python und Perl funktionieren nicht.

Edit 3: Also habe ich es geschafft, mich ein bisschen nach vorne zu bewegen, wenn ich Jamies Vorschlägen gefolgt bin. Die Benutzeroberfläche "hängt" nicht mehr. Aber wenn ich auf den Python-Interpreter zugreife, ist die Ausgabe des Interpreters in meinem Tool immer noch nicht sichtbar. Irgendwelche Vorschläge, warum das passieren könnte?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage