如何在C#中读取Putty.exe(但不是plink.exe)输出?

时间:2013-08-05 10:32:46

标签: c# putty

我想知道如何从putty.exe控制台窗口读取输出。

关于如何获取plink.exe / cmd.exe的输出(以及如何输入)有很多答案,但它们都不适用于putty.exe。

仅供参考我现在所拥有的;将字符串'putty.exe'更改为'cmd.exe'使事情有效:

            var process = new Process();
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.RedirectStandardInput = true;
            process.StartInfo.RedirectStandardError = true;
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.FileName = "putty.exe";
            process.OutputDataReceived +=
                (s, e) =>
                {
                    Console.WriteLine(e.Data);
                    switch (e.Data)
                    {
                        case "test1":
                            {
                                process.StandardInput.WriteLine("echo test2");
                            }
                            break;

                        case "test2":
                            {
                                process.StandardInput.WriteLine("exit");
                            }
                            break;
                    }
                };

            if (process.Start())
            {
                process.BeginErrorReadLine();
                process.BeginOutputReadLine();
                process.StandardInput.WriteLine("echo test1");
                process.WaitForExit();
            }

编辑: 该段代码的目的是自动处理登录过程:提供用户名/密码后,输入“sudo”并输入相应的审核消息。 我需要一种方法来捕获putty.exe的输出,以便我可以输入文本到这个终端。

1 个答案:

答案 0 :(得分:2)

plink.exe的全部意义是为PuTTY提供命令行界面。这就是你应该使用的。