Sudheer gadde Ответов: 1

Стандартная ошибка отображается как ^C после закрытия командной строки


Привет,

После выполнения команды в c# команда не закрывается автоматически, и я также попытался передать команду exit, но без изменений.

Когда я закрываю его вручную, сообщение об ошибке отображается как "^C"

Но команда работает в соответствии с требованием, но cmd не закрывается.


Может ли кто-нибудь помочь, в чем может быть проблема?

Что я уже пробовал:

ProcessStartInfo start = new ProcessStartInfo();
                start.FileName = @"C:\WINDOWS\system32\cmd.exe";
                start.UseShellExecute = false;
                start.RedirectStandardOutput = true;
                start.RedirectStandardInput = true;
                start.RedirectStandardError = true;
                start.CreateNoWindow = false;
                Process proc1 = new Process();
                proc1.StartInfo = start;
                proc1.Start();
                using (StreamWriter sw = proc1.StandardInput)
                {
                    if (sw.BaseStream.CanWrite)
                    {
                        sw.WriteLine("cd " + "Specified folder");
                        sw.WriteLine(mycommand);
                        sw.WriteLine("exit");
                    }
                }
                    proc1.WaitForExit();
                string outputval = proc1.StandardError.ReadToEnd();
                if (!string.IsNullOrEmpty(outputval))
                    MessageBox.Show(outputval);

1 Ответов

Рейтинг:
9

Richard MacCutchan

Я попробовал ваш код, с одним незначительным изменением, и он успешно работает. Мои изменения:

proc1.WaitForExit();
string outputval = proc1.StandardOutput.ReadToEnd(); // read output of command, not error


[редактировать]
Когда я читаю StandardError, он пуст. Проблема должна быть в команде, которую вы посылаете процессу.
[/редактировать]


Sudheer gadde

Спасибо за ваше время и говорю, что никакой ошибки в процессе, но только с моей командой....Я проверю один раз и вернусь к вам..