• 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;
    }
  • 相关阅读:
    lua学习之环境搭建
    c易错点归纳
    H7-TOOS之SPI控制器功能
    搜索旋转排序数组
    电话号码的字母组合
    打家劫舍python实现
    括号生成实现
    玩烂bert--集成输出预测分类、特征向量、参数冻结、推理
    tensorflow 查看ckpt模型中参数值
    求柱状图中最大的矩形
  • 原文地址:https://www.cnblogs.com/wolbo/p/12196439.html
Copyright © 2020-2023  润新知