C# 调用命令行工具

10/30/2017 csharp

如何使用C#调用git命令?

# 第一步,如何在C#中调用命令行工具?

static class CmdHelper
{
    public static bool ExecuteTool(string toolFile, string args, out string result, out string errorMsg)
    {
        bool success = false;
        string msg = string.Empty;
        string errMsg = string.Empty;
        try
        {
            Process p;
            ProcessStartInfo psi;
            psi = new ProcessStartInfo(toolFile);
            psi.Arguments += args;

            psi.UseShellExecute = false;
            psi.RedirectStandardOutput = true; //允许重定向标准输出
            psi.CreateNoWindow = true;
            psi.RedirectStandardError = true;
            psi.WindowStyle = ProcessWindowStyle.Hidden;

            p = Process.Start(psi);

            msg = p.StandardOutput.ReadToEnd(); //Call ReadToEnd() before WaitForExit()

            p.WaitForExit();

            success = p.ExitCode == 0;
            if (!success)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append(p.StandardError.ReadToEnd());
                errMsg = sb.ToString();
            }

            p.Close();
        }
        catch (Exception ex)
        {
            errMsg = ex.Message + " when invoke " + toolFile;
            return false;
        }
        finally
        {
            result = msg;
            errorMsg = errMsg;
        }
        return success;
    }
}

参考资料:Process.StandardOutput使用注意事项(转) (opens new window)

# 第二步,找到git.exe的位置,调用之。

通过命令调用git命令,需要带上 git-dir work-tree 两个参数。 具体的使用示例,可以看这里 (opens new window)

完了~ 好吧,这又是一篇很懒的博客。

更新时间: Friday, March 12, 2021 22:54