我正在尝试重定向以下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文件,则输出正确。