您的位置:首页 > 编程语言 > C#

C#中一种执行命令行或DOS内部命令的方法

2010-11-10 13:12 302 查看
using System;


// 要用使用Process类来创建独立的进程,导入


using System.Diagnostics;




namespace Cmd






{




    class CmdConsole




    

{




        [STAThread]


        static void Main(string[] args)




        

{


            Console.Write("Please Input IP Address: ");


            string ip = Console.ReadLine();


            string strRst = CmdPing(ip);


            Console.WriteLine(strRst);


            Console.ReadLine();


        }




        private static


        string CmdPing(string strIp)




        

{


            // 实例一个Process类,启动一个独立进程


            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;




            // 启动进程


            string pingrst;




            p.Start();




            p.StandardInput.WriteLine("ping -n 1 " + strIp);


            p.StandardInput.WriteLine("exit");




            // 从输出流获取命令执行结果


            string strRst = p.StandardOutput.ReadToEnd();




            if (strRst.IndexOf("( 0% loss )") != -1)


                pingrst = "连接";


            else if (strRst.IndexOf("Destination host unreachable.") != -1)


                pingrst = "无法到达目的主机";


            else if (strRst.IndexOf("Request timed out.") != -1)


                pingrst = "超时";


            else if (strRst.IndexOf("Unknown host") != -1)


                pingrst = "无法解析主机";


            else


                pingrst = strRst;


            // if end




            p.Close();




            return pingrst;


        }


    }


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dos c# string shell