zoukankan      html  css  js  c++  java
  • dotnet 执行命令常用代码

    private int Execute(string str, bool silence = false)
    {
        int result;
        try
        {
            Console.WriteLine("nuget " + str);
            Process process = this.ExecuteCMD(str);
            StringBuilder stringBuilder = new StringBuilder();
            using (StreamReader standardOutput = process.StandardOutput)
            {
                while (!standardOutput.EndOfStream)
                {
                    string text = standardOutput.ReadLine();
                    Console.WriteLine(text);
                    if (text.Contains("forbidden"))
                    {
                        process.Kill();
                        process.WaitForExit();
                        throw new Exception("权限不足");
                    }
                    stringBuilder.Append(text);
                }
            }
            string str2 = process.StandardError.ReadToEnd();
            process.WaitForExit();
            int exitCode= process.ExitCode;
            if (exitCode!= 0) { 

            string text2 = stringBuilder.ToString() + " " + str2; Console.WriteLine(text2);
            
    if (!silence) {
              
    throw new Exception(text2);
            }
          Console.WriteLine(
    "nuget operation failed to achieve the desired effect.");
      }
       result
    =exitCode;
    }
    catch (Exception) { throw; }
    return result;
    }
    private Process ExecuteCMD(string str)
    {
        ProcessStartInfo startInfo;
        if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
        {
            str = " /usr/local/bin/nuget.exe " + str;
            startInfo = new ProcessStartInfo("mono", str)
            {
                RedirectStandardOutput = true,
                CreateNoWindow = false,
                ErrorDialog = false,
                RedirectStandardError = true
            };
        }
        else
        {
            startInfo = new ProcessStartInfo("nuget", str)
            {
                RedirectStandardOutput = true,
                CreateNoWindow = false,
                ErrorDialog = false,
                RedirectStandardError = true
            };
        }
        return Process.Start(startInfo);
    }
    private string ExecuteCMDWithOutput(string str)
    {
        Process process = Process.Start(new ProcessStartInfo("nuget", str)
        {
            RedirectStandardOutput = true,
            CreateNoWindow = false
        });
        string result = string.Empty;
        using (StreamReader standardOutput = process.StandardOutput)
        {
            while (!standardOutput.EndOfStream)
            {
                string text = standardOutput.ReadLine();
                if (text.Contains("xxx") || text.Contains("xxx"))
                {
                    result = text;
                }
            }
            if (!process.HasExited)
            {
                process.Kill();
                return result;
            }
        }
        return result;
    }
  • 相关阅读:
    智慧城市顶层设计策略方案(PPT)
    ant build.xml 解释!
    Excel poi API基础教程!
    操纵Excel文件的 ExcelUtil 类 !
    在selenium测试中使用XPATH功能函数starts-with、contains、descendant、ancestor、text()定位网页元素
    [ Selenium2 从零开始 by Bruce from http://seleniumcn.cn ] 1-8 视频集锦
    selenium 概念及练习 !
    selenium Object Page 设计模式理解及实现!
    使用TestNG 和 CSV文件进行数据驱动
    如何让评审人爱上我
  • 原文地址:https://www.cnblogs.com/wolbo/p/12196439.html
Copyright © 2011-2022 走看看