Отправка команд в приглашение cmd в C#

Для одной из моих реализаций я работаю над инструментом, который должен отправлять/получать команды/результаты в/из окна cmd. Все работает нормально, но приведенный ниже вариант использования ничего не делает. Кажется, что мое приложение чего-то ждет (вместо того, чтобы отображать результат)

Из моего инструмента я перехожу к папке python. Из папки python я пытаюсь запустить python.exe, но в этот момент мой редактор ничего не делает. он просто продолжает ждать.

Для вашего любезного рассмотрения я также связываю видео здесь. Вам, ребята, будет легче понять, что я пытаюсь сказать.

Посмотреть видео здесь (на ютубе)

Я также прикрепляю код, который у меня есть в настоящее время.

            ProcessStartInfo info = new ProcessStartInfo("cmd.exe");

            string argument = null;
            if (!string.IsNullOrEmpty(startingDirectory) && System.IO.Directory.Exists(startingDirectory))
            {
               argument += @"cd\";
            }
            else
            {
                argument += "\"";
            }
            info.Arguments = argument;
            info.CreateNoWindow = true;
            info.RedirectStandardError = true;
            info.RedirectStandardInput = true;
            info.RedirectStandardOutput = true;
            info.UseShellExecute = false;
             this.shellProcess = System.Diagnostics.Process.Start(info);
            this.shellProcess.EnableRaisingEvents = true;
            //this.InputStream.AutoFlush = true;
            this.shellProcess.Exited += new EventHandler(ProcessExited);
            this.ErrorBeginRead();
            this.OutputBeginRead();

 private void OutputBeginRead()
    {
        this.shellProcess.StandardOutput.BaseStream.BeginRead(outputBuffer, 0, outputBuffer.Length, new AsyncCallback(this.OnOutputInput), this.shellProcess);
    }

        private void ErrorBeginRead()
    {
        this.shellProcess.StandardError.BaseStream.BeginRead(errorBuffer, 0, errorBuffer.Length, new AsyncCallback(this.OnErrorInput), this.shellProcess);
    }

Благодарю вас !

РЕДАКТИРОВАТЬ :Запуск python — это просто пример. Мне нужно использовать тот же метод и для других обычных команд строки cmd. Было бы неплохо, если бы кто-нибудь мог указать, что я делаю неправильно с кодом, который у меня есть, или что я должен сделать, чтобы достичь предполагаемой функциональности.

РЕДАКТИРОВАТЬ 2 :Обычные команды cmd работают отлично. Инструменты командной строки, такие как python, perl, не работают.

Редактировать 3 :Итак, мне удалось немного продвинуться вперед, следуя предложениям Джейми. Пользовательский интерфейс больше не «висит». но когда я получаю доступ к интерпретатору python, вывод интерпретатора все еще не виден в моем инструменте. Любые предложения, почему это может происходить?

8
задан Gagan 1 August 2012 в 23:40
поделиться