logo

  • 首页
  • 博客简介
  • 说说页面
  • 关于
  • 文章存档
    • C#教程
    • C#实战
  • 隐私政策
  • 首页
  • 博客简介
  • 说说页面
  • 关于
  • 文章存档
  • 隐私政策
您正在使用IE浏览器,部分内容可能无法显示,建议您换用更新的浏览器,请单击下载Chrome浏览器
显示屏过小,本网站无法正常显示
你处于离线状态,正在显示缓存网页
首页/ 分类:C#教程/ 【编程技巧】执行DOS命令

【编程技巧】执行DOS命令

2020年8月06日 09:44:11 吕舒君 1 百度已收录 1,203 次浏览

C++可以通过system()执行系统命令,那么C#如何执行系统命令呢?

步骤

C#并没有直接提供执行系统命令的函数,但是我们可以通过静默启动cmd实现。

注:请先引用命名空间using System.Diagnostics;

1.初始化cmd进程对象

//创建进程对象
  Process process = new Process();
  //设定此进程对象的信息
  ProcessStartInfo startInfo = new ProcessStartInfo();
  //设定将要打开的应用
  startInfo.FileName = System.Environment.GetFolderPath(Environment.SpecialFolder.System) + "\\cmd.exe";
  //设定需要执行的命令,“/C”表示执行完命令后马上退出  
  startInfo.Arguments = "/C " + "执行的命令";
  //不使用系统外壳程序启动
  startInfo.UseShellExecute = false;
  //不重定向输入
  startInfo.RedirectStandardInput = false;
  //重定向输出(用于读取输出)
  startInfo.RedirectStandardOutput = true;
  //不创建窗口,不显示
  startInfo.CreateNoWindow = true;
  process.StartInfo = startInfo;

2. 打开cmd,读取输入,并退出

try
  {
      //启动程序
      process.Start();
      //无限等待退出
      process.WaitForExit();
      //获得输出信息
      string outstr = process.StandardOutput.ReadToEnd();
  }
  finally
  {
      process.Close();
  }

实例

读取输入的命令,执行后输出结果

展开源码
using System;
  using System.Diagnostics;
  using System.Runtime.InteropServices;
  namespace CMD
  {
      class Program
      {
          //创建进程对象
          static string[] c = { "1", "1" };
          static Process process = new Process();
          static void Main(string[] args)
          {
              if (args != c)
              {
                  //设置信息
                  Console.Beep(4000, 500);
                  Console.Title = "CMD模拟";
                  Console.WriteLine("[ 控制台模拟 Ver=1.0 Author=C#之家 Website=https://www.chsarphome.xyz ]");
              }
              Console.Write("->");
              //设定此进程对象的信息
              ProcessStartInfo startInfo = new ProcessStartInfo();
              //设定将要打开的应用
              startInfo.FileName = System.Environment.GetFolderPath(Environment.SpecialFolder.System) + "\\cmd.exe";
              //设定需要执行的命令,“/C”表示执行完命令后马上退出  
              startInfo.Arguments = "/C " + Console.ReadLine();
              if (startInfo.Arguments == "/C exit") 
              {
                  Environment.Exit(0);
              }
              if (startInfo.Arguments == "/C cls")
              {
                  Console.Clear();
                  Main(c);
              }
              if (startInfo.Arguments == "/C ver")
              {
                  Console.WriteLine("[ 控制台模拟 Ver=1.0 Author=C#之家 Website=https://www.chsarphome.xyz ]");
                  Main(c);
              }
              //不使用系统外壳程序启动
              startInfo.UseShellExecute = false;
              //不重定向输入
              startInfo.RedirectStandardInput = false;
              //重定向输出(用于读取输出)
              startInfo.RedirectStandardOutput = true;
              //不创建窗口,不显示
              startInfo.CreateNoWindow = true;
              process.StartInfo = startInfo;
              try
              {
                  //启动程序
                  process.Start();
                  //无限等待退出
                  process.WaitForExit();
                  //获得输出信息
                  string outstr = process.StandardOutput.ReadToEnd();
                  Console.WriteLine(outstr);
              }
              finally
              {
                  process.Close();
              }
              Main(c);
          }
      }
  }
作者头像
吕舒君
就是本站站长(^_−)☆
提示
你已经点赞过了
上一篇文章缩略图
【奇闻异事】百度彩蛋
« 上一篇文章
下一篇文章缩略图
【编程技巧】打开文件资源管理器
下一篇文章 »
原创声明
版权声明: 本文由作者吕舒君于2020年8月06日 09:44:11原创发表.
转载请务必取得作者同意, 并附带本页面地址: https://cszj.wang/674.html
查看作者 吕舒君 的所有文章
发表评论
account_circle
email
email
评论区
共1条回复
侧边栏
文章目录
  • 步骤
  • 实例
最近文章
文章缩略图
【Windows】Windows11初体验
升级&安装 不久前,微软刚刚发布了“十年来最重要的操
文章缩略图
【Windows】如何关闭Windows的自动更新
引子 Windows的自动更新的问题已经困扰了一些用户很久了
文章缩略图
【前端教程】如何创建一个属于自己的在线思维导图网站
什么是思维导图 思维导图,英文是The Mind Map,又
文章缩略图
【信奥】Java vs C++
题面 题目描述 Java和C++两种语言的辩手都可以相互争论
文章缩略图
【信奥】收集树叶
题面 描述 给出一棵二叉树,收集并移除所有叶子,重复执行,直
最近文章
您尚未登录
底部推荐
随机文章
文章缩略图
【Windows】Windows11初体验
升级&安装 不久前,微软刚刚发布了“十年来最重要的操
站点统计
文章总数:35篇
评论总数:127条
分类总数:9个
标签总数:81个
网站运行:1995天
最后更新:2022-4-4
友情链接
搜索站 文件管理 洛谷 WordPress大学

吕舒君的博客,一个传递知识的网站!

前往本站
吕舒君的博客
一个传递知识的网站

版权所有·吕舒君(2016-2022)

酷博客(V4.1.0). Theme By 吕舒君. 网站已使用SSL加密 本页面进行了 72 次请求在 0.434 秒内加载完成, 使用了 12.13MB 的内存。