.Net Core 执行Shell命令的时候,无论是 Windows 还是 Linux,实现方式的都是一样的
//fileName 命令文件,比如 ping,dig,nslookup 等,也可以执行其他第三方的可执行程序,不过就需要指定 WorkingDirectory //arguments 具体参数 public static async TaskExecute(string fileName, string arguments) { string rValue = "",err=""; Process p = new Process(); p.StartInfo.FileName = fileName; p.StartInfo.Arguments = arguments; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; //捕获返回正常的信息 p.StartInfo.RedirectStandardError = true; //捕获返回异常的信息 p.EnableRaisingEvents = true; // p.StartInfo.WorkingDirectory = WorkingDirectory; p.Start(); p.WaitForExit(); rValue = await p.StandardOutput.ReadToEndAsync();//获取返回正常的信息 err = await p.StandardError.ReadToEndAsync(); //获取返回异常的信息 return err + rValue; }
比如返回 ping www.baidu.com 的结果
var result = Execute("ping","www.baidu.com"); Console.WriteLine(result);