示例#1
0
文件: Windows.cs 项目: radtek/HinxCor
        /// <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);
        }
示例#2
0
文件: Windows.cs 项目: radtek/HinxCor
 /// <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);
 }