C#调用telnet命令无法取得返回值

时间:2022-09-02 18:23:00
大家好,请教一个问题。

在C#中调用telnet命令,但是代码执行后 没有得到telnet的返回的值(使用ping命令可以得到)。
请问如何能得到它的返回值?

下面是代码:

        private static string CmdTelnet(string strIp)
        {
            string pingrst="";
            string strRst = "";
            Process p = new Process();

            //设定程序名
            p.StartInfo.FileName = "cmd.exe";
            //关闭Shell的使用
            p.StartInfo.UseShellExecute = false;

            //重定向标准输入
            p.StartInfo.RedirectStandardInput = true;
            //重定向标准输出
            p.StartInfo.RedirectStandardOutput = true;
            //重定向错误输出
            p.StartInfo.RedirectStandardError = true;
            //设置不显示窗口
            p.StartInfo.CreateNoWindow = true;
            p.Start();

            //输入要执行的命令            
            p.StandardInput.WriteLine("telnet " + strIp);
            p.StandardInput.WriteLine("exit");

            strRst = p.StandardOutput.ReadToEnd();

            p.Close();

            return pingrst;
        }

希望各位朋友不吝赐教,谢谢。

5 个解决方案

#1


有知道的吗?自己先顶一下。

#2


跪求答案。。。。

#3


p.WaitForExit();

然后获取 ExitCode

#4


引用 3 楼  的回复:
p.WaitForExit();

然后获取 ExitCode


无论我用正确的IP还是错误的,ExitCode返回的值都是-1,为啥呢?

#5


引用 3 楼  的回复:
p.WaitForExit();

然后获取 ExitCode


无论我用正确的IP还是错误的,ExitCode返回的值都是-1,为啥呢?

#1


有知道的吗?自己先顶一下。

#2


跪求答案。。。。

#3


p.WaitForExit();

然后获取 ExitCode

#4


引用 3 楼  的回复:
p.WaitForExit();

然后获取 ExitCode


无论我用正确的IP还是错误的,ExitCode返回的值都是-1,为啥呢?

#5


引用 3 楼  的回复:
p.WaitForExit();

然后获取 ExitCode


无论我用正确的IP还是错误的,ExitCode返回的值都是-1,为啥呢?