.Net执行cmd获取系统信息

public string Test()
        {
            Stopwatch w = new Stopwatch();
            w.Start();
            StringBuilder sb = new StringBuilder();
            string str = RunCmdForJobs("systeminfo");
            string[] lines = str.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string line in lines)
            {
                string[] temp = line.Split(new string[] { ": " }, StringSplitOptions.RemoveEmptyEntries);
                if (temp.Length == 2)
                    sb.AppendFormat("{0}:{1}
", temp[0], temp[1].Trim(' ')); else if (temp.Length == 1) sb.AppendFormat("{0}
", temp[0]); } //sb.Append(str); w.Stop(); sb.AppendFormat("用时(毫秒):{0}
", w.ElapsedMilliseconds); return sb.ToString(); } /// /// 执行cmd命令 /// 多命令请使用批处理命令连接符: /// /// 其他请百度 /// public static string RunCmdForJobs(string cmdText) { string strOutput = ""; var cmd = cmdText + " &exit"; //说明:不管命令是否成功均执行exit命令,否则当调用ReadToEnd()方法时,会处于假死状态 using (var p = new System.Diagnostics.Process()) { p.StartInfo.FileName = "C:\\Windows\\system32\\cmd.exe"; p.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动 p.StartInfo.RedirectStandardInput = true; //接受来自调用程序的输入信息 p.StartInfo.RedirectStandardOutput = true; //由调用程序获取输出信息 p.StartInfo.RedirectStandardError = true; //重定向标准错误输出 p.StartInfo.CreateNoWindow = true; //不显示程序窗口 p.Start(); //启动程序 //向cmd窗口写入命令 p.StandardInput.WriteLine(cmd); p.StandardInput.AutoFlush = true; strOutput = p.StandardOutput.ReadToEnd(); p.WaitForExit(); //等待程序执行完退出进程 p.Close(); } return strOutput; }


运行结果:

.Net执行cmd获取系统信息_第1张图片












你可能感兴趣的:(C#/.NET/VS/Linq)