private static string ExecuteCommand(string shell,
                                      string command,
                                      ExitCodeValidator exitCodeValidator,
                                      string workingDirectory)
 {
     return(ExecuteWithOutputRedirect(shell, "/c " + command, exitCodeValidator, workingDirectory));
 }
        public static string Execute32bitCommand(string command,
                                                 ExitCodeValidator exitCodeValidator,
                                                 string workingDirectory = null)
        {
            var runnerDirectory = Environment.Is64BitOperatingSystem
                                      ? Path.Combine(Environment.SystemDirectory, @"..\SysWoW64")
                                      : Environment.SystemDirectory;

            return(ExecuteCommand(Path.Combine(runnerDirectory, "cmd.exe"), command, exitCodeValidator, workingDirectory));
        }
        public static string ExecuteWithOutputRedirect(string fileName,
                                                       string arguments,
                                                       ExitCodeValidator exitCodeValidator,
                                                       string workingDirectory,
                                                       int?timeout = null)
        {
            var result = TryExecuteWithOutputRedirect(fileName, arguments, workingDirectory, timeout);

            if (exitCodeValidator(result))
            {
                throw new Exception(result.ExitCode + " " + result.Output);
            }
            return(result.Output);
        }
 public static string ExecuteCommand(string command,
                                     ExitCodeValidator exitCodeValidator,
                                     string workingDirectory = null)
 {
     return(ExecuteCommand(Path.Combine(Environment.SystemDirectory, "cmd.exe"), command, exitCodeValidator, workingDirectory));
 }