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# 字符串与unicode互相转换实战案例

    下面是详细讲解“C# 字符串与unicode互相转换实战案例”的完整攻略: 背景 在C#编程中,有时需要将字符串与unicode之间进行转换。本文将针对这一问题进行探讨,并提供实战案例。 技术准备 在进行转换操作前,需要先掌握以下技术: 1. 字符串类型 在C#中,字符串类型被定义为System.String类。该类型可以容纳任何Unicode字符,通常使用…

    C# 2023年6月8日
    00
  • Unity实现苹果手机Taptic震动

    Unity实现苹果手机Taptic震动 简介 苹果手机(iOS)的Taptic Engine,是一种基于振动的触觉反馈技术,可以使用户在使用手机的过程中,通过触摸和感觉来增强用户体验。在Unity中使用Taptic Engine,可以提供更加逼真的交互体验,使用户更加沉浸其中。本文将详细讲解如何在Unity中实现苹果手机的Taptic震动。 实现步骤 步骤一…

    C# 2023年6月3日
    00
  • C#判断一天、一年已经过了百分之多少的方法

    C#判断一天、一年已经过了百分之多少的方法需要统计日期信息并进行运算,可以使用DateTime类和TimeSpan类来实现。下面将详细讲解实现方法。 使用DateTime类获取日期信息 通过使用DateTime.Now属性,可以获取当前系统时间,包含年月日、时分秒等信息。我们可以将这个信息保存到一个DateTime类型的变量中,并获取其中的年份、月份和天数来…

    C# 2023年6月1日
    00
  • C# 表达式目录树Expression的实现

    下面就是关于C#表达式目录树(Expression)的实现攻略。 什么是C#表达式目录树(Expression)? C#表达式目录树(Expression)是一种编程语言特性,用于表示特定语言结构的树形数据结构。它是.NET框架中的一个重要组件,用于功能扩展、动态代码生成和编程语言实现等方面。 C#表达式目录树(Expression)的实现 创建表达式 首先…

    C# 2023年6月1日
    00
  • C#实现上位机与欧姆龙PLC通讯(FINS)

    C#实现上位机与欧姆龙PLC通讯(FINS)的完整攻略 背景介绍 欧姆龙PLC是一种常见的现场控制设备,与上位机进行通讯可以实现对PLC控制的监管和控制。而C#作为一种常见的编程语言,也可以用来实现上位机和PLC的通讯。本文将介绍如何使用C#实现上位机和欧姆龙PLC的通讯。 实现步骤 创建C#项目 在Visual Studio中创建一个C#项目。 导入Omr…

    C# 2023年5月15日
    00
  • 配置C#的系统环境变量的方法

    配置C#的系统环境变量,可以使得我们在命令行中直接使用C#编译器,提高开发效率。下面是配置C#的系统环境变量的完整攻略: 步骤一:找到C#编译器的安装路径 首先,我们需要找到C#编译器的安装路径,这个路径会用在后面的系统环境变量配置中。假设我们的C#编译器安装在C盘的Program Files文件夹下的Microsoft Visual Studio文件夹内,…

    C# 2023年6月3日
    00
  • 实现.Net7下数据库定时检查的方法详解

    以下是关于“实现.Net7下数据库定时检查的方法详解”的完整攻略: 1. 什么是数据库定时检查? 数据库定时检查是指定期检查数据库中的数据,以确数据完整性和一致性。这通常涉及到检查数据的有效性、完整性、一致性和准确性等方面。 2. 如何实现数据库定时检查? 要实现数据库定时检查,按照以下步骤: 2.1. 创建定时任务 首先,我们需要创建一个定时任务,以便定期…

    C# 2023年5月12日
    00
  • C#事件(event)使用方法详解

    C#事件(event)使用方法详解 在C#语言中,事件(event)是一种能够向外界传递消息并触发特定操作的机制。本文将详细讲解C#事件的基本概念、使用方法和注意事项等内容,帮助读者更好的掌握事件处理。 基本概念 事件是一种特殊的委托类型,它能够在对象状态发生变化时,向监听者发送信号并触发相应操作。事件通常包含以下几个要素: 事件源:触发事件的对象。 事件参…

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