C# 执行CMD命令并接收返回结果的操作方式

下面我会详细讲解如何在C#中执行CMD命令并接收返回结果的操作方式,步骤如下:

第一步:引入命名空间和创建Process对象

using System.Diagnostics;

通过引入System.Diagnostics命名空间,我们可以使用Process类来执行CMD命令并接收返回结果。我们需要先创建一个Process对象来执行CMD命令,以便可以设置Process对象所需的一些参数。

Process process = new Process();

第二步:设置Process对象的参数

有一些必要的参数,需要设置在调用CMD命令时传递给Process对象。如下:

  • FileName:该属性设置要执行的CMD命令的文件名,这里我们需要设置CMD.exe。
  • Arguments:该属性设置传递给CMD.exe的参数,我们要执行的CMD命令,比如 dir、ipconfig 等。
  • UseShellExecute:设置是否使用操作系统 shell 启动进程。设置为false时,将不会在新的窗口中运行程序。默认值为true。
  • RedirectStandardOutput:该属性设置是否将输出流重定向到 Process 对象的 StandardOutput 流中。这是接收 CMD 命令返回结果的关键。
  • CreateNoWindow:设置是否在新窗口中启动进程并且将其显示到屏幕上。

举个例子,我们要执行 dir 命令,并获取返回结果,这里要这样设置:

Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = "/c dir";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = true;

第三步:启动Process对象并获取返回结果

可以通过调用Process对象的Start()方法来启动CMD命令并等待执行完成。如果设置了RedirectStandardOutput为true,则可以使用Process对象的StandardOutput属性来获取CMD命令返回的结果。

process.Start();
string results = process.StandardOutput.ReadToEnd();

需要注意的是,在CMD命令执行完毕之后,使用ReadToEnd()方法获取返回结果时,要等待进程完成执行。

完整的代码示例:

using System.Diagnostics;

namespace cmdDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Process process = new Process();
            process.StartInfo.FileName = "cmd.exe";
            process.StartInfo.Arguments = "/c dir";
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.CreateNoWindow = true;
            process.Start();

            string results = process.StandardOutput.ReadToEnd();          
            process.WaitForExit();

            Console.WriteLine(results);
            Console.ReadKey();
        }
    }
}

运行结果:

Directory of C:\Users\Administrator\source\repos\cmdDemo\cmdDemo\bin\Debug\netcoreapp3.1

2021/05/17  下午 01:31    <DIR>          .
2021/05/17  下午 01:31    <DIR>          ..
2021/05/16  下午 11:01             3,072 cmdDemo.dll
2021/05/17  下午 01:31            77,824 cmdDemo.pdb
2021/05/16  下午 11:01             4,096 cmdDemo.runtimeconfig.dev.json
2021/05/16  下午 11:01             1,012 cmdDemo.runtimeconfig.json
               4 File(s)         85,004 bytes
               2 Dir(s)  129,921,566,208 bytes free

再举一个例子,我们要执行 ipconfig 命令,获取本地IP信息:

Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = "/c ipconfig";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = true;
process.Start();

string results = process.StandardOutput.ReadToEnd();
process.WaitForExit();

Console.WriteLine(results);
Console.ReadKey();

运行结果:

Windows IP Configuration


Ethernet adapter Ethernet0:

   Connection-specific DNS Suffix  . :
   IPv4 Address. . . . . . . . . . . : 192.168.0.200
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.0.1

Wireless LAN adapter WiFi0:

   Connection-specific DNS Suffix  . :
   IPv4 Address. . . . . . . . . . . : 192.168.31.119
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.31.1

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 执行CMD命令并接收返回结果的操作方式 - Python技术站

(1)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • C#入门之定义类成员与接口实现

    在这里我将为你详细讲解“C#入门之定义类成员与接口实现”的完整攻略。以下是详细步骤: 步骤一:定义类 定义类是面向对象编程中的基础,通过定义类,可以定义对象的属性和方法。首先,打开Visual Studio或其他C#编程软件,创建一个新的C#控制台应用程序。接着,创建一个新的类,命名为“Person”: public class Person { publi…

    C# 2023年6月1日
    00
  • c#处理3种json数据的实例

    C#处理3种JSON数据的实例 在C#中,JSON是一种常见的数据格式,可以使用Newtonsoft.Json库来处理JSON数据。本文将提供3个示例,演示如何处理3种不同类型的JSON数据。 示例1:处理简单的JSON对象 以下示例演示如何处理简单的JSON对象: using Newtonsoft.Json.Linq; using System; name…

    C# 2023年5月15日
    00
  • 在C#里面给PPT文档添加注释的实现代码

    在C#中通过对PowerPoint对象模型的操作,可以实现在PPT文档中添加注释的功能。下面是具体的步骤: 1. 引用PowerPoint对象模型 首先需要引用PowerPoint对象模型,方法如下: using Microsoft.Office.Interop.PowerPoint; 2. 创建PowerPoint文档对象并打开文件 使用下面的代码可以创建…

    C# 2023年6月6日
    00
  • C#获取两个数的最大公约数和最小公倍数示例

    C#获取两个数的最大公约数和最小公倍数示例 本文将介绍如何在C#中获取两个数的最大公约数和最小公倍数。我们将使用辗转相除法和欧几里得算法来计算最大公约数和最小公倍数。C#中计算最大公约数和最小公倍数的示例代码也会在文章中提供。 计算最大公约数(GCD) 两个正整数a和b的最大公约数(GCD)是能够同时整除两个数的最大正整数。下面我们将使用辗转相除法来计算两个…

    C# 2023年6月7日
    00
  • ASP.net Forms验证Demo

    下面是关于“ASP.net Forms验证Demo”的完整攻略: 1. 什么是ASP.net Forms验证Demo ASP.net Forms验证Demo是一种在ASP.net网站中使用的验证方式,它可以验证用户输入的表单数据是否合法。这种验证方式可以确保用户输入的数据符合规定的格式和内容,同时也可以保证网站数据的安全性。 2. 如何创建ASP.net F…

    C# 2023年5月31日
    00
  • C# task应用实例详解

    C# Task 应用实例详解 什么是 Task? Task 是 .NET Framework 中提供的一种异步编程模式,它可以将方法的执行放到另一个线程中,不会阻塞当前线程的执行,从而提高应用的响应速度和性能。Task 中的一个最重要的概念就是任务(Task),即异步执行的一项工作,它可以返回值、抛出异常和进行其他处理。 Task 的使用方法 创建 Task…

    C# 2023年5月15日
    00
  • .Net MVC将Controller数据传递到View

    在.Net MVC中,Controller通过Model来向View传递数据,Model通常是一个类,保存着Controller需要向View传递的数据,在Controller中创建Model,将需要传递的数据赋值给Model,再将Model传递给View。 下面我们来详细阐述“.Net MVC将Controller数据传递到View”的完整攻略: 在Con…

    C# 2023年5月31日
    00
  • .NET对接极光消息推送的实现方法

    标题 .NET对接极光消息推送的实现方法 简介 极光推送是目前市场上广泛应用的消息推送服务。在实际应用中,我们可能需要将极光推送服务与.NET应用程序进行对接,以实现推送消息的功能。本文将详细讲解.NET对接极光消息推送的实现方法,包括如何获取API与Secret,如何发送推送请求等步骤。 获取API与Secret 在使用极光推送服务之前,我们需要先获取AP…

    C# 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部