C# - Prozess Standard-Eingabe

Ich bin versucht derzeit, trennen der Verbindung zu einem Netzwerk-Ordner über die Kommandozeile und bin mit dem folgenden code:

System.Diagnostics.Process process2 = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C NET USE F: /delete";
startInfo.RedirectStandardError = true;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
process2.StartInfo = startInfo;
process2.Start();

StreamWriter sw = process2.StandardInput;
sw.WriteLine("Y");
sw.Close();

process2.WaitForExit();
process2.Close();

Gelegentlich, bekomme ich die Meldung "Is it ok to continue disconnecting and force them closed? (Y/N) [N]", auf die ich Antworten möchte "Y", aber ich scheine Probleme mit, die arbeiten.

Weiß jemand warum mein code ist nicht der Eingabe von "Y", um die standard-Eingabe?

möglich, Duplikat der Wie erzeugen Sie einen Prozess und erfassen seine STDOUT .NET?
Du bist Umleitung der standard-Fehler-und-Ausgang, ohne tatsächlich zu Lesen, die entweder aus. Wenn Sie nicht wollen, um das Ergebnis zu sehen, nicht umgeleitet. Beachten Sie auch die gemeinsame Deadlocks Fallstricke beim Lesen sowohl standard-Ausgabe und Fehler; die Puffer füllen können und einfach nur da sitzen ewig warten müssen, wenn Sie nicht gewährleisten können, sind Sie geleert.
Er ist Regie data der Prozess, nicht von ihm.
versuchen Sie der Konsole.WriteLine
Ich glaube, Sie brauchen, um zu Lesen hinter dem Titel der Frage.

InformationsquelleAutor mastur cheef | 2013-10-23

Schreibe einen Kommentar