C# 调用命令行执行Cmd命令的操作
作者:会思考的猴子 时间:2022-08-03 10:43:26
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
标签:C#,命令行,Cmd命令
0
投稿
猜你喜欢
深入解析Spring Cloud内置的Zuul过滤器
2022-05-16 12:49:04
使用@pathvariable与@requestparam碰到的一些问题及解决
2023-11-27 16:30:34
android简单自定义View实现五子棋
2023-06-01 19:30:38
springboot2.0如何通过fastdfs实现文件分布式上传
2022-03-20 16:49:24
C# 删除字符串中的中文(实例分享)
2021-12-30 12:55:48
LRU缓存替换策略及C#实现方法分享
2021-08-27 04:20:49
Java权重随机的实现方法
2021-10-05 14:27:50
Spring整合Junit的使用详解
2022-11-20 18:33:17
android获取ibeacon列表的方法
2023-01-18 00:57:54
C#日期格式字符串的相互转换操作实例分析
2021-09-01 10:06:56
解读Spring-Context的作用及用法
2023-09-27 06:45:02
Android之侧滑菜单DrawerLayout的使用介绍
2023-02-02 23:43:33
Spring Boot MQTT Too many publishes in progress错误的解决方案
2023-06-27 02:16:44
Android registerForActivityResult动态申请权限案例详解
2021-10-05 17:40:42
OpenCV图像处理之常见的图像灰度变换
2021-09-09 07:47:01
解决IDEA中 Ctrl+ALT+V这个快捷键无法使用的情况
2022-02-27 07:51:36
Java结构型设计模式中建造者模式示例详解
2023-04-24 13:37:31
Java详解数据类型的定义与使用
2023-09-29 01:35:20
Flutter开发Mac桌面应用实现自动提取生成视频字幕文件
2023-05-11 05:25:58
基于Java文件输入输出流实现文件上传下载功能
2023-08-10 11:50:32