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 我猜测这个调用的是第一张图的窗口,而不是二图的窗口

C# 调用命令行执行Cmd命令的操作

代码:


   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
  • asp之家 软件编程 m.aspxhome.com