перенаправить стандартный вывод в файл вопрос? - PullRequest
0 голосов
/ 02 декабря 2010

Привет, почему я получаю ошибку «Отказано в доступе» при попытке выполнить этот процесс?Я запускаю (MSBuild "файл проекта" "дополнительные аргументы") команду с этим новым процессом

public bool CmdExecute(string command,string args)
     {



          bool isOk = true;
         try
         {
             using (System.Diagnostics.Process proc = new System.Diagnostics.Process())
             {

                 proc.EnableRaisingEvents = false;
                 proc.StartInfo.UseShellExecute = false;
                 proc.StartInfo.RedirectStandardOutput = true;
                 proc.StartInfo.FileName = command;
                 proc.StartInfo.Arguments = args;

                // Console.Out.WriteLine(proc.StartInfo.Arguments);

                 proc.Start();
                 string output = proc.StandardOutput.ReadToEnd();
               proc.WaitForExit();
               Console.WriteLine(output);
             }

             }
         }
         catch(Exception e)
         {
            Console.WriteLine(e.Message);
             isOk = false;
         }
         return isOk;   
     }

1 Ответ

1 голос
/ 02 декабря 2010

Прочитайте документы в Process.StartInfo.RedirectStandardOutput.Вы не используете это правильно.

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput.aspx

Если вы используете RedirectStandardOutput, вам следует прочитать Process.StandardOutput и Process.StandardError и что-то с этим делать.Получение доступа запрещено, так как ваша полученная командная строка не имеет смысла.Вы получите:

msbuild args &> P:\\build.txt

Посторонний амперсанд (&) будет вызывать проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...