• .NET(C#)调用cmd.exe(dos命令)两种方法(Process,Cli)


    本文主要介绍.NET(C#)中调用cmd.exe(dos命令)两种方法,一个是通过Process调用,另一个是通过Cli调用。

    1、通过Process调用cmd命令

    1)C#运行shell命令

    string strCmdText;
    strCmdText= "/C copy /b Image1.jpg + Archive.rar Image2.jpg";
    System.Diagnostics.Process.Start("CMD.exe",strCmdText);

    2)运行cmd命令隐藏控制台窗口

    System.Diagnostics.Process process = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startInfo.FileName = "cmd.exe";
    startInfo.Arguments = "/C copy /b Image1.jpg + Archive.rar Image2.jpg";
    process.StartInfo = startInfo;
    process.Start();

    3)运行cmd命令参数配置

    var proc1 = new ProcessStartInfo();
    string anyCommand;
    proc1.UseShellExecute = true;
    proc1.WorkingDirectory = @"C:\Windows\System32";
    proc1.FileName = @"C:\Windows\System32\cmd.exe";
    proc1.Verb = "runas";
    proc1.Arguments = "/c "+anyCommand;
    proc1.WindowStyle = ProcessWindowStyle.Hidden;
    Process.Start(proc1);

    var proc = new Process
    {
        StartInfo = new ProcessStartInfo
        {
            FileName = @"C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\tf.exe",
            Arguments = "checkout AndroidManifest.xml",
            UseShellExecute = false,
            RedirectStandardOutput = true,
            CreateNoWindow = true,
            WorkingDirectory = @"C:\MyAndroidApp\"
        }
    };
    
    proc.Start();

    4)通过控制台应用程序中传递参数获取输出结果

    using System.Diagnostics;
    Process cmd = new Process();
    cmd.StartInfo.FileName = "cmd.exe";
    cmd.StartInfo.RedirectStandardInput = true;
    cmd.StartInfo.RedirectStandardOutput = true;
    cmd.StartInfo.CreateNoWindow = true;
    cmd.StartInfo.UseShellExecute = false;
    cmd.Start();
    cmd.StandardInput.WriteLine("echo Oscar");
    cmd.StandardInput.Flush();
    cmd.StandardInput.Close();
    cmd.WaitForExit();
    Console.WriteLine(cmd.StandardOutput.ReadToEnd());

    2、通过Cli调用cmd命令

    通过Nuget安装Cli

    Nuget使用相关文档:VS(Visual Studio)中Nuget的使用

    var stdout = new Cli("cmd")
    .Execute("copy /b Image1.jpg + Archive.rar Image2.jpg")
    .StandardOutput;
  • 相关阅读:
    .net mvc 一个Action的 HttpGet 和 HttpPost
    在ASP.NET MVC中对表进行通用的增删改
    ASP.NET MVC3 入门指南之数据验证[源码RAR下载]
    ASP.NET MVC开发,编辑页面和添加页面基本相同,我们控制器 Add Edit是共用同一个View吗?
    IEnumerable和IEnumerator 详解
    文件I/O(不带缓冲)之lseek函数
    文件I/O(不带缓冲)之close函数
    文件I/O(不带缓冲)之creat函数
    文件I/O(不带缓冲)之open函数
    文件I/O(不带缓冲)概述
  • 原文地址:https://www.cnblogs.com/fireicesion/p/16809565.html
Copyright © 2020-2023  润新知