一、怎样使dos命令悄悄执行,而不弹出控制台窗口?

1.需要执行带“/C”参数的“cmd.exe”命令,它表示执行完命令后立即退出控制台。
2.设置startInfo.UseShellExecute = false;     //不使用系统外壳程序启动进程
3.设置startInfo.CreateNoWindow = true;     //不创建窗口

二、怎样得到dos命令的执行结果?

1.设置startInfo.RedirectStandardOutput = true;   //重定向输出,而不是默认的显示在dos控制台
2.使用process.StandardOutput来读取结果。

三、源程序

我将这一系列操作都封装到了类DosCommandOutput的方法Execute中,请看下面:

using System;
using System.Text;
using System.Diagnostics;

namespace Wuya.GetDosCommandOutput
{
/// <summary>
/// DOS命令输出类
/// </summary>
class DosCommandOutput
{
  /// <summary>
  /// 执行DOS命令,返回DOS命令的输出
  /// </summary>
  /// <param name="dosCommand">dos命令</param>
  /// <returns>返回输出,如果发生异常,返回空字符串</returns>
  public static string Execute(string dosCommand)
  {
   return Execute(dosCommand, 60 * 1000);
  }
  /// <summary>
  /// 执行DOS命令,返回DOS命令的输出
  /// </summary>
  /// <param name="dosCommand">dos命令</param>
  /// <param name="milliseconds">等待命令执行的时间(单位:毫秒),如果设定为0,则无限等待</param>
  /// <returns>返回输出,如果发生异常,返回空字符串</returns>
  public static string Execute(string dosCommand, int milliseconds)
  {
   string output = "";     //输出字符串
   if (dosCommand != null && dosCommand != "")
   {
    Process process = new Process();     //创建进程对象
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = "cmd.exe";      //设定需要执行的命令
    startInfo.Arguments = "/C " + dosCommand;   //设定参数,其中的“/C”表示执行完命令后马上退出
    startInfo.UseShellExecute = false;     //不使用系统外壳程序启动
    startInfo.RedirectStandardInput = false;   //不重定向输入
    startInfo.RedirectStandardOutput = true;   //重定向输出
    startInfo.CreateNoWindow = true;     //不创建窗口
    process.StartInfo = startInfo;
    try
    {
     if (process.Start())       //开始进程
     {
      if (milliseconds == 0)
       process.WaitForExit();     //这里无限等待进程结束
      else
       process.WaitForExit(milliseconds);  //这里等待进程结束,等待时间为指定的毫秒
      output = process.StandardOutput.ReadToEnd();//读取进程的输出
     }
    }
    catch
    {
    }
    finally
    {
     if (process != null)
      process.Close();
    }
   }
   return output;
  }
}
}

四、使用示例

txtResult.Text=DosCommandOutput.Execute(txtCommand.Text);

在.net中悄悄执行dos命令,并获取执行的结果(转)的更多相关文章

  1. 使用Python执行dos命令并获取输出的结果

    import os import subprocess # 第一种 result1 = subprocess.check_output('dir').decode('GBK') print(resul ...

  2. c# 设置和取消文件夹共享及执行Dos命令

    /// <summary> /// 设置文件夹共享 /// </summary> /// <param name="FolderPath">文件 ...

  3. appium自动化测试框架——在python脚本中执行dos命令

    一般我们运行dos命令,会有两种需求,一种是需要收集执行结果,如ip.device等:一种是不需要收集结果,如杀死或开启某个服务. 对应的在python中就要封装两种方法,来分别实现这两种需求. 1. ...

  4. C#中执行Dos命令

    //dosCommand Dos命令语句 public string Execute(string dosCommand) { ); } /// <summary> /// 执行DOS命令 ...

  5. 【转载】DOS 系统和 Windows 系统有什么关系?为什么windows系统下可以执行dos命令?

    作者:bombless 因为不同的系统都叫 Windows ,这些系统在界面上也有一定连续性并且因此可能造成误解,所以有必要稍微梳理一下几个不同的 Windows 系统.首先是 DOS 上的一个图形界 ...

  6. C#执行外部程序之执行DOS命令和批处理

    在项目开发中,有时候要处理一些文件,比如视频格式的转换,如果用C开发一套算法,再用C#调用,未免得不偿失!有时候调用现有的程序反而更加方便.今天就来说一下C#中如何调用外部程序,执行一些特殊任务. 这 ...

  7. C#执行DOS命令(CMD命令)

    在c#程序中,有时会用到调用cmd命令完成一些功能,于是在网上查到了如下方法,实现了c#执行DOS命令,并返回结果.         //dosCommand Dos命令语句         publ ...

  8. c#执行Dos命令

    一个执行Dos命令的窗口程序,与各位分享.   效果图:     具体实现在代码中有详细的注释,请看代码.   实现执行CMD命令的核心代码(Cmd.cs):   [csharp]   using S ...

  9. C# 执行DOS命令和批处理

    在项目开发中,有时候要处理一些文件,比如视频格式的转换,如果用C开发一套算法,再用C#调用,未免得不偿失!有时候调用现有的程序反而更加方便.今天就来说一下C#中如何调用外部程序,执行一些特殊任务. 这 ...

随机推荐

  1. Android布局居中的几种做法

    Android的布局文件中,如果想让一个组件(布局或View)居中显示在另一个布局(组件)中,可以由这么几种做法: android:layout_gravity android:gravity and ...

  2. magento的robots文件编写和判断是否是一个导航分类页面

    magento是网店系统,我们突出的是我们的产品,所以,有很多路径我们不想让搜索引擎索引到,所以我们需要用robots文件进行限制 下面是麦神magento的robots.txt里面的内容,因为很多u ...

  3. Java学习第五天

    一.内存分析 内存分析:指数据的存储,理解程序执行过程,运行期的行为,不是编译期. 分类 栈: 方法栈存储方法的局部变量|形参后进先出 堆: 对象堆存储new的对象散列存储 方法区: 特殊的堆,类方法 ...

  4. 暴力枚举——Help Me with the Game

      Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3394   Accepted: 2172 Description You ...

  5. dedecms内容页调用缩略图 缩略图多种用法(借鉴)

    文章内容页调用缩略图方法如下两种.第一种没有大小设置.原图显示.第二种.可以设大小, (1) {dede:field.image/} (2)<img src="{dede:field. ...

  6. js 下载文件 window.location.href

    window.location.href ="../../pages2/assessmentplan/exportPointAsessment.do?planId="+planId ...

  7. Codeforces Round #117 (Div. 2)

    Codeforces Round #117 (Div. 2) 代码 Codeforces Round #117 (Div. 2) A. Battlefield any trench in meters ...

  8. spark新能优化之广播共享数据

    如果你的算子函数中,使用到了特别大的数据,那么,这个时候,推荐将该数据进行广播.这样的话,就不至于将一个大数据拷贝到每一个task上去.而是给每个节点拷贝一份,然后节点上的task共享该数据. 这样的 ...

  9. POJ1637 Sightseeing tour (混合图欧拉回路)(网络流)

                                                                Sightseeing tour Time Limit: 1000MS   Me ...

  10. PHP pdao用法总结

    $sql = 'SELECT name, colour, calories     FROM fruit     WHERE calories < :calories AND colour =  ...