2017-02-13 7 views
0

ich Umleiten cmd Ausgang nach unten umgeleitet:cmd Ausgabe teilweise C#

name.OutputDataReceived += new DataReceivedEventHandler(StandardOutputHandler); 

Das Problem ist, wenn CMD einen „Anruf“ Befehl an einem anderen Fledermaus-Datei enthält.

Wenn ich Fledermaus manuell ausführen, funktioniert alles gut und Inhalt von Anruf ist in cmd Fenster sichtbar. Bei der Ausführung über Winforms wird die Ausgabe vom Anruf jedoch nicht umgeleitet (z. B. nicht in der Konsole).

:: Call Job/Sytem variables 

call Test_Variables.bat 

Die Test_Variables Fledermaus enthält einfache Satz Anweisungen für Variablen:

set SYSTEM=%JOB%\System\ 

Gibt es eine Möglichkeit, es in der umgeleiteten Ausgabe aufgenommen zu haben?

mit Visual Studio 2015 und Ausführen von Winform-Anwendung.

+0

Dies könnte Ihr Problem nicht lösen, aber in der Vergangenheit habe ich verwendet ConsoleControl https:. // Github .com/dwmkerr/consolecontrol, um das zu tun, was ich brauchte, wenn ich Daten von Console Applications aus anzeigte ... –

+0

@ jason.kaisersmith danke für den Vorschlag, aber der Quellcode dahinter ist dem was ich habe sehr ähnlich und daher denke ich ich wird das gleiche Problem haben Ich denke, es muss den Inhalt der aufgerufenen Fledermaus in den Speicher oder etwas lesen und es wird hinzugefügt, bevor die Ausgabe umgeleitet wird. –

Antwort

0

Ich habe die Quelle des Problems (mit etwas Hilfe) gefunden.

Um die Ausgabe umzuleiten, muss ich UseShellExecute auf false setzen, daher wird der Aufrufbefehl nicht aufgerufen, wenn die Ausgabe umgeleitet wird.

Der einzige Weg, um es manuell die Anruf-Datei lesen :(

Hope this jemand hilft