天天看点

C#执行dos里面的命令的方法,在Web中使用,比如ping,ipconfig等

private string ExecuteCmd(string command)
        {
            StringBuilder sb = new StringBuilder();
            string version = System.Environment.OSVersion.VersionString;//读取操作系统版本
            if (version.Contains("Windows"))
            {
                using (Process p = new Process())
                {
                    p.StartInfo.FileName = "cmd.exe";

                    p.StartInfo.UseShellExecute = false;//是否指定操作系统外壳进程启动程序
                    p.StartInfo.RedirectStandardInput = true;
                    p.StartInfo.RedirectStandardOutput = true;
                    p.StartInfo.CreateNoWindow = true;//不显示dos命令行窗口

                    p.Start();//启动cmd.exe
                    p.StandardInput.WriteLine(command);//输入命令
                    p.StandardInput.WriteLine("exit");//退出cmd.exe
                    p.WaitForExit();//等待执行完了,退出cmd.exe

                    using (StreamReader reader = p.StandardOutput)//截取输出流
                    {
                        string line = reader.ReadLine();//每次读取一行
                        while (!reader.EndOfStream)
                        {
                            sb.Append(line).Append("<br />");//在Web中使用<br />换行
                            line = reader.ReadLine();
                        }
                        p.WaitForExit();//等待程序执行完退出进程
                        p.Close();//关闭进程
                        reader.Close();//关闭流
                    }
                }
            }
            return sb.ToString();
        }
           

使用举例:

Label1.Text = ExecuteCmd("ipconfig /all");
            Label2.Text = ExecuteCmd("ping www.baidu.com");