2017-02-13 122 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,因此调用命令将不会在输出重定向时调用。

围绕它的唯一方法是阅读手工调用文件:(

希望这可以帮助别人