C#进程输出重定向来自运行其他命令的bat文件

时间:2017-11-22 11:57:58

标签: c#

我正在尝试重定向以下BAT文件的输出:

@echo Parando proceso matrix (%1)...
@plink pi@%1 -pw raspberry sudo killall -9 matrix

在C#中使用以下代码

Process process = new Process();
ProcessStartInfo psi = new ProcessStartInfo("run.bat", "192.168.1.100);
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.CreateNoWindow = true;
process.OutputDataReceived += ProcessOutput;
process.StartInfo = psi;
process.Start();
process.BeginOutputReadLine();


private void ProcessOutput(Object sender, DataReceivedEventArgs e)
{
    if (!string.IsNullOrEmpty(e.Data))
    {
        ProcessOut.Invoke(new ThreadStart(delegate ()
        {
            ProcessOut.Text += e.Data + "\r\n";
        }));
    }
}

但我只得到“echo”输出,而不是“plink”输出,这是一个命令行程序,它连接到运行命令并显示其输出的SSH服务器。正在执行此“plink”命令。

如果我直接运行bat文件,则输出正确。

0 个答案:

没有答案