/// <summary> /// dos执行batcher命令 /// </summary> /// <param name="command">bat命令</param> /// <returns>CMD INFO</returns> public static CommandExitInfo ExecuteCommand(string command) { var exif = new CommandExitInfo(0); ProcessStartInfo processInfo; Process process; processInfo = new ProcessStartInfo("cmd.exe", "/c " + command); processInfo.CreateNoWindow = true; processInfo.UseShellExecute = false; // *** Redirect the output *** processInfo.RedirectStandardError = true; processInfo.RedirectStandardOutput = true; process = Process.Start(processInfo); process.WaitForExit(); // *** Read the streams *** // Warning: This approach can lead to deadlocks, see Edit #2 exif.ExitCode = process.ExitCode; exif.Error = process.StandardError.ReadToEnd(); exif.Output = process.StandardOutput.ReadToEnd(); //Console.WriteLine("output>>" + (String.IsNullOrEmpty(output) ? "(none)" : output)); //Console.WriteLine("error>>" + (String.IsNullOrEmpty(error) ? "(none)" : error)); //Console.WriteLine("ExitCode: " + exitcode.ToString(), "ExecuteCommand"); process.Close(); return(exif); }
/// <summary> /// dos执行batcher命令 /// </summary> /// <param name="command">bat命令</param> /// <param name="exif">INFO</param> public static void ExecuteCommand(string command, out CommandExitInfo exif) { exif = ExecuteCommand(command); }