代码改变世界

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

2013-09-06 09:40  -夜  阅读(181)  评论(0)    收藏  举报
        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");

版权声明:本文为博主原创文章,未经博主允许不得转载。

作者:夜 本文地址:http://www.cnblogs.com/ful1021 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。如有问题,可以邮件:531761819@qq.com 联系我,非常感谢。