• 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;
    }
  • 相关阅读:
    【书籍学习】MATLAB书籍【chinapub】matlab教程一套电子书
    【视频学习1】《SimuIink仿真及代码自动生成技术从入门到精通》
    《[MATAB神经网络30个案例分析].史峰.扫描版[www.minxue.net]》
    Resources about Programming
    【待完成】《 Matlab_Simulink动力学系统建模仿真》实践内容
    Cracking the Coding Interview Q2.3
    Cracking the Coding Interview Q2.2
    Cracking the Coding Interview Q2.1
    Cracking the Coding Interview Q1.8
    Cracking the Coding Interview Q1.7
  • 原文地址:https://www.cnblogs.com/wolbo/p/12196439.html
Copyright © 2020-2023  润新知