c# 返回 cmd 命令的结果

把结果作为一个整体返回:

 1 public static string ExecuteCommandSync(object command)
 2       {
 3           try
 4           {
 5               // create the ProcessStartInfo using "cmd" as the program to be run,
 6               // and "/c " as the parameters.
 7               // Incidentally, /c tells cmd that we want it to execute the command that follows,
 8               // and then exit.
 9               System.Diagnostics.ProcessStartInfo procStartInfo =
10                   new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);
11 
12               // The following commands are needed to redirect the standard output.
13               // This means that it will be redirected to the Process.StandardOutput StreamReader.
14               procStartInfo.RedirectStandardOutput = true;
15               procStartInfo.UseShellExecute = false;
16               // Do not create the black window.
17               procStartInfo.CreateNoWindow = true;
18               // Now we create a process, assign its ProcessStartInfo and start it
19               System.Diagnostics.Process proc = new System.Diagnostics.Process();
20               proc.StartInfo = procStartInfo;
21               proc.Start();
22               // Get the output into a string
23               string result = proc.StandardOutput.ReadToEnd();
24               // Display the command output.
25               return result;
26           }
27           catch (Exception)
28           {
29               // Log the exception
30               return null;
31           }
32       }

将结果按行返回:

 1 public static List<string> ExecuteCommand(object command)
 2         {
 3             try
 4             {
 5                 List<string> list = new List<string>();
 6                 // create the ProcessStartInfo using "cmd" as the program to be run,
 7                 // and "/c " as the parameters.
 8                 // Incidentally, /c tells cmd that we want it to execute the command that follows,
 9                 // and then exit.
10                 System.Diagnostics.ProcessStartInfo procStartInfo =
11                     new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);
12 
13                 // The following commands are needed to redirect the standard output.
14                 // This means that it will be redirected to the Process.StandardOutput StreamReader.
15                 procStartInfo.RedirectStandardOutput = true;
16                 procStartInfo.UseShellExecute = false;
17                 // Do not create the black window.
18                 procStartInfo.CreateNoWindow = true;
19                 // Now we create a process, assign its ProcessStartInfo and start it
20                 System.Diagnostics.Process proc = new System.Diagnostics.Process();
21                 proc.StartInfo = procStartInfo;
22 
23                 proc.Start();
24                 // Get the output into a string
25                 //string result = proc.StandardOutput.ReadToEnd();
26                 StreamReader sr = proc.StandardOutput;//获取返回值 
27                 string line = "";
28                 int num = 1;
29                 while ((line = sr.ReadLine()) != null) //按行读取
30                 {
31                     if (line != "")
32                     {
33                         //Console.WriteLine(line + " " + num++);
34                         list.Add(line.Trim());
35                     }
36                 }
37                 //return result;
38                 return list;
39             }
40             catch (Exception)
41             {
42                 // Log the exception
43                 return null;
44             }
45         }

 

参考:

 

C# 执行 CMD 命令并获取返回结果

 

posted @ 2021-08-11 12:06  一菲聪天  阅读(913)  评论(0编辑  收藏  举报