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

 更新时间:2021年04月09日 10:51:30   作者:会思考的猴子  
这篇文章主要介绍了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");

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • WPF弹出右键菜单时判断鼠标是否选中该项

    WPF弹出右键菜单时判断鼠标是否选中该项

    这篇文章介绍了WPF弹出右键菜单时判断鼠标是否选中该项的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#中使用JSON.NET实现JSON、XML相互转换

    C#中使用JSON.NET实现JSON、XML相互转换

    这篇文章主要介绍了C#中使用JSON.NET实现JSON、XML相互转换的相关代码及示例,需要的朋友可以参考下
    2015-11-11
  • DataGridView设置单元格的提示内容ToolTip

    DataGridView设置单元格的提示内容ToolTip

    这篇文章介绍了DataGridView设置单元格提示内容ToolTip的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • C#操作进程的方法介绍

    C#操作进程的方法介绍

    这篇文章介绍了C#操作进程的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • C#备忘录模式(Memento Pattern)实例教程

    C#备忘录模式(Memento Pattern)实例教程

    这篇文章主要介绍了C#备忘录模式(Memento Pattern),以一个支持回退操作的例子讲述了C#备忘模式的实现方法,需要的朋友可以参考下
    2014-09-09
  • 基于C#制作一个休息提醒闹钟的详细步骤

    基于C#制作一个休息提醒闹钟的详细步骤

    小闹钟大家都应该很熟悉,它包括时间、事件,当达到某某时间时,事件发生了,并且还有一个提示信息,下面这篇文章主要给大家介绍了关于如何基于C#制作一个休息提醒闹钟的详细步骤,需要的朋友可以参考下
    2023-02-02
  • 在C#中发送自定义HTML格式邮件的示例详解

    在C#中发送自定义HTML格式邮件的示例详解

    在C#中发送自定义HTML格式邮件是一项常见的任务,这在开发电子邮件营销系统或任何需要通过电子邮件与用户沟通的应用程序中都非常重要,以下是如何在C#中发送自定义HTML格式邮件的详解与示例,需要的朋友可以参考下
    2024-07-07
  • C#读取数据库返回泛型集合详解(DataSetToList)

    C#读取数据库返回泛型集合详解(DataSetToList)

    本篇文章主要是对C#读取数据库返回泛型集合(DataSetToList)进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#递归读取XML菜单数据的方法

    C#递归读取XML菜单数据的方法

    这篇文章主要介绍了C#递归读取XML菜单数据的方法,涉及递归的操作技巧与C#窗体的用法,对于进行C#项目开发具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • C#之IP地址和整数互转的小例子

    C#之IP地址和整数互转的小例子

    C#之IP地址和整数互转的小例子,需要的朋友可以参考一下
    2013-03-03

最新评论