C# 调用命令行执行Cmd命令的操作
作者:会思考的猴子 发布时间:2022-08-03 10:43:26
标签:C#,命令行,Cmd命令
1、不知道为啥
process.StartInfo.Arguments = "/c" + "start D:/Tim/Bin/QQScLauncher.exe";
这个执行命令一定要加/c ,/c ,/c,重要的事说3遍 才能正常编译并运行
cmd /c dir
:是执行完dir命令后关闭命令窗口;
cmd /k dir
:是执行完dir命令后不关闭命令窗口。
process.StartInfo.Arguments 我猜测这个调用的是第一张图的窗口,而不是二图的窗口
代码:
static void LaunchCommandLineApp()
{
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = "/c" + "start D:/Tim/Bin/QQScLauncher.exe";
process.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动
process.StartInfo.CreateNoWindow = false; //是否在新窗口中启动该进程的值 (不显示程序窗口)
process.Start();
process.WaitForExit(); //等待程序执行完退出进程
process.Close();
}
补充:C# 执行指定命令和执行cmd命令
通常需要在程序执行过程中调用CMD命令并获取信息,
以下方法实现了该功能
/// <summary>
/// 执行内部命令(cmd.exe 中的命令)
/// </summary>
/// <param name="cmdline">命令行</param>
/// <returns>执行结果</returns>
public static string ExecuteInCmd(string cmdline)
{
using (var process = new Process())
{
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
process.StandardInput.AutoFlush = true;
process.StandardInput.WriteLine(cmdline + "&exit");
//获取cmd窗口的输出信息
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
process.Close();
return output;
}
}
以下方法实现了调用第三方实现的命令
/// <summary>
/// 执行外部命令
/// </summary>
/// <param name="argument">命令参数</param>
/// <param name="application">命令程序路径</param>
/// <returns>执行结果</returns>
public static string ExecuteOutCmd(string argument, string applocaltion)
{
using (var process = new Process())
{
process.StartInfo.Arguments = argument;
process.StartInfo.FileName = applocaltion;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
process.StandardInput.AutoFlush = true;
process.StandardInput.WriteLine("exit");
//获取cmd窗口的输出信息
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
process.Close();
return output;
}
}
ProcessCore.ExecuteInCmd("ipconfig");
ProcessCore.ExecuteOutCmd("-I http://www.baidu.com", @"C:\curl.exe");
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://blog.csdn.net/qq_39097425/article/details/84191014


猜你喜欢
- vs2005中总是保留最近打开的项目和文件的记录,甚至是以删除的它也不删,-_-!下面介绍几种删除的方法:第一种:建立一个bat文件,以后双
- 一.Unsafe类的源码分析JDK的rt.jar包中的Unsafe类提供了硬件级别的原子操作,Unsafe里面的方法都是native方法,通
- 详解java中保持compareTo和equals同步摘要 : 介绍重写equlas()和comparable接口,两者进行不相同的判断。从
- 一般项目做到后期,在测试的时候,需要在测试版本和正式版本之间进行频繁的切换,怎么办呢?土豪的话可以考虑使用两台机器,同时测试,然而为了方便测
- 本文实例讲述了C#实现简单屏幕监控的方法。分享给大家供大家参考。具体如下:这是一段C#编写的屏幕监控代码,可以自动对屏幕进行截图,软件自身隐
- 页眉位于文档中每个页面的顶部区域,常用于显示文档的附加信息,可以插入时间、图形、公司微标、文档标题、文件名或作者姓名等;页脚位于文档中每个页
- VS2010+Opencv+MFC读取图像和视频显示在Picture控件,供大家参考,具体内容如下1.新建MFC对话框应用程序。其余选项默认
- Spring Boot 自动配置来看下 spring boot中自动配置的注解@SuppressWarnings("depreca
- 一、模拟业务需求假设我们现在需要在我们的系统中导入一批关于学生信息的Excel的数据,其主要的信息有:学号、姓名、年龄、性别等等,在导入系统
- Java序列化是什么?Java序列化是指把Java对象转换为字节序列的过程,Java反序列化是指把字节序列恢复为Java对象的过程。反序列化
- webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互。概念性的东西就不说太多,下面开始创建一个简单的webservi
- 一、下载客户端代码package javadownload; import java.io.ByteArrayOutputStream; i
- RateLimiter官方文档RateLimiter令牌桶原理图随着时间流逝,系统会按恒定1/QPS时间间隔(如果QPS=100,则间隔是1
- 现阶段,我们创建了最简单的Android项目,现在在此公布github链接https://github.com/neuyu/android-
- 一、什么是特性特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通
- EntityWrapper的in用法EntityWrapper<UserLife> wrapper = new EntityWr
- 这两天我写了一个测试c++异常处理机制的例子,感觉有很好的示范作用,在此贴出来,给c++异常处理的初学者入门。本文后附有c++异常的知识普及
- 其实就只有一条sql语句<select id = "search" resultType = "mate
- 今天在做数据分页显示的时候遇到了一个问题,经过测试,证实是Tomcat 6的一个bug,我所用的版本为:apache-tomcat-6.0.
- 之前知道spring支持JSR校验,在自己定义的bean中加入@NotNull,@NotBlank,@Length等之类的校验用于处理前台传