2017-02-13 86 views
0

我重定向每下面cmd輸出爲:CMD輸出部分重定向C#

name.OutputDataReceived += new DataReceivedEventHandler(StandardOutputHandler); 

問題是,當CMD包含一個「呼叫」命令到另一個bat文件。

當我手動運行蝙蝠時,所有工作正常,呼叫內容在cmd窗口中可見。但是,通過Winforms運行時,呼叫的輸出不會重定向(例如,不會顯示在控制檯中)。

:: Call Job/Sytem variables 

call Test_Variables.bat 

的Test_Variables蝙蝠包含變量的簡單指令集:

set SYSTEM=%JOB%\System\ 

有沒有辦法把它列入重定向輸出?

使用Visual Studio 2015並運行winform應用程序。

+0

這可能不是解決你的問題,但在過去,我已經使用ConsoleControl的https:// github上.com/dwmkerr/consolecontrol在顯示控制檯應用程序的數據時需要做什麼,你可以看看這個。 –

+0

@ jason.kaisersmith謝謝你的建議,但背後的源代碼與我所擁有的非常相似,因此我認爲我會有同樣的問題,我猜測它必須將被調用的蝙蝠的內容讀入內存或其他東西,並且在輸出重定向之前添加它,這是一個猜測。 –

回答

0

我發現問題的根源(有一些幫助)。

要重定向輸出,我需要將UseShellExecute設置爲false,因此調用命令將不會在輸出重定向時調用。

圍繞它的唯一方法是閱讀手工調用文件:(

希望這可以幫助別人