C#隐式执行CMD命令

本文实现C#隐式执行CMD功能命令。下图是示例程序的主界面。

在命令文本框输入DOS命令,点击“Run”button。在以下的文本框中输出执行结果。

以下是程序的完整代码。

本程序没有使用p.StandardOutput.ReadtoEnd()和p.StandardOutput.ReadLine()方法来获得输出,由于这些方法运行后画面easy卡死。

而是通过调用异步方法BeginOutputReadLine来获取输出。并在事件p.OutputDataReceived的事件处理方法中来处理结果。

using System;
using System.Diagnostics;
using System.IO;
using System.Windows.Forms;

namespace RunDosCommandForm
{
    publicpartialclassForm1 : Form
    {
        publicForm1()
        {
           InitializeComponent();
        }

        privatevoidbutton1_Click(object sender, EventArgse)
        {
           ExcuteDosCommand(textBox1.Text);
        }

        privatevoidExcuteDosCommand(string cmd)
        {
            try
            {
               Process p = newProcess();
               p.StartInfo.FileName = "cmd";
               p.StartInfo.UseShellExecute = false;
               p.StartInfo.RedirectStandardInput = true;
               p.StartInfo.RedirectStandardOutput = true;
               p.StartInfo.RedirectStandardError = true;
               p.StartInfo.CreateNoWindow = true;
               p.OutputDataReceived += newDataReceivedEventHandler(sortProcess_OutputDataReceived);
               p.Start();
               StreamWriter cmdWriter = p.StandardInput;
               p.BeginOutputReadLine();
               if (!String.IsNullOrEmpty(cmd))
               {
                   cmdWriter.WriteLine(cmd);
               }
               cmdWriter.Close();
               p.WaitForExit();
               p.Close();
            }
            catch(Exception ex)
            {
               MessageBox.Show("运行命令失败,请检查输入的命令是否正确!");
            }
        }

        privatevoidsortProcess_OutputDataReceived(object sender,DataReceivedEventArgs e)
        {
            if(!String.IsNullOrEmpty(e.Data))
            {
               this.BeginInvoke(newAction(() => { this.listBox1.Items.Add(e.Data);}));
            }
        }
    }
}

我们还能够将须要执行的CMD命令保存为BAT文件。再使用Process类来执行。

Process p = new Process();//设定调用的程序名,不是系统文件夹的须要完整路径
p.StartInfo.FileName = "cmd.bat";//传入运行參数
p.StartInfo.Arguments = "";
p.StartInfo.UseShellExecute = false;//是否重定向标准输入
p.StartInfo.RedirectStandardInput = false;//是否重定向标准转出
p.StartInfo.RedirectStandardOutput = false;//是否重定向错误
p.StartInfo.RedirectStandardError = false;//运行时是不是显示窗体
p.StartInfo.CreateNoWindow = true;//启动
p.Start();
p.WaitForExit();
p.Close();

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2025-01-04 09:01:40

C#隐式执行CMD命令的相关文章

C#隐式运CMD命令

本文实现了C#隐式运行CMD命令的功能.下图是实例程序的主画面.在命令文本框输入DOS命令,点击"Run"按钮,在下面的文本框中输出运行结果. 下面是程序的完整代码.本程序没有使用p.StandardOutput.ReadtoEnd()和p.StandardOutput.ReadLine()方法来获得输出,因为这些方法执行后画面容易卡死.而是通过调用异步方法BeginOutputReadLine来获取输出,并在事件p.OutputDataReceived的事件处理方法中来处理结果. u

C#中隐式操作CMD命令行窗口

原文:C#中隐式操作CMD命令行窗口 MS的CMD命令行是一种重要的操作界面,一些在C#中不那么方便完成的功能,在CMD中几个简单的命令或许就可以轻松搞定,如果能在C#中能完成CMD窗口的功能,那一定可以使我们的程序简便不少. 下面介绍一种常用的在C#程序中调用CMD.exe程序,并且不显示命令行窗口界面,来完成CMD中各种功能的简单方法. 如下所示: System.Diagnosties.Process p=new System.Diagnosties.Process(); p.StartIn

Atitit.执行cmd 命令行 php

Atitit.执行cmd 命令行 php 1. 执行cmd 命令行,调用系统命令的基础 1 1.1. 实际执行模式 1 1.2. 空格的问题 1 1.3. 中文路径的问题,程序文件读取编码设置 1 1.4. 回显乱码 2 2. exec,system等函数调用系统命令 2 3. php.ini,关掉安全模式safe_mode = off 3 4. 参考 3 1. 执行cmd 命令行,调用系统命令的基础 1.1. 实际执行模式 Processmonitor 检查.得到.. PID: 115372,

JAVA之执行cmd命令

感言在前:时隔好久没有更新博客园了,忙东忙西也没忙出个什么之所以然来.回首过去的几个月,只能用“疲倦”两个字来形容,时间飞逝地很快,有苦也有乐,有酸也有甜. 好了,矫情的话就说到这.百忙之中,我还是记得抽些时间来更博. class ExecCmd { public static void main(String args[]) { Runtime run = Runtime.getRuntime(); Process process = null; try { process = run.exe

java执行cmd命令并获取输出结果

1.java执行cmd命令并获取输出结果 1 import java.io.BufferedReader; 2 import java.io.InputStreamReader; 3 4 import org.apache.commons.lang3.text.StrBuilder; 5 6 /** 7 * 8 * @author user1 9 */ 10 public class DeleteProgram { 11 public static void run() { 12 Runtime

.Net执行cmd命令

using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.W

C# 执行CMD命令的方法

/// <summary> /// 执行CMD命令 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string ExeCmd(string str) { try { //string str = Console.ReadLine(); System.Diagnostics.Process p =

Python利用多线程定时执行cmd命令关机

利用os模块可以执行cmd命令,利用这一点可以实现定时关机,然而在等待关机的过程中也不能啥都不干,于是多线程派上了用场. #! /usr/bin/env python #coding=utf-8 #这里需要引入三个模块 import time, os, sched, easygui, thread # 第一个参数确定任务的时间,返回从某个特定的时间到现在经历的秒数 # 第二个参数以某种人为的方式衡量时间 schedule = sched.scheduler(time.time, time.sle

java执行cmd命令

从网上找的java执行cmd命令的文章,摘抄一段. java的Runtime.getRuntime().exec(commandStr)可以调用执行cmd指令. cmd /c dir 是执行完dir命令后封闭命令窗口. cmd /k dir 是执行完dir命令后不封闭命令窗口. cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会封闭. cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会封闭. 可以用cmd / 查看帮助信息. ★CMD命令★1