2010-03-05 2 views
1

Я пытаюсь запустить завиток как процесс и захватить вывод из окна команд. Я пробовал работать как curl напрямую, как процесс, а также запускал cmd, а затем записывал команды в командную строку. Однако вывод из curl сам не возвращается (включен режим verbose), хотя иногда я получаю то, что выглядит как проблема с кодировкой, например. ÈÆŸ.Ошибка регистрации stdout из curl с .net (C#)

Если у кого-нибудь есть вдохновение, я был бы вам признателен!

 private static bool ExecuteCurl(string curlDirectory, string curlArgs, string filePath) 
     { 

      Process process = new Process(); 
      process.StartInfo.FileName = "cmd.exe"; 
      process.StartInfo.UseShellExecute = false; 
      process.StartInfo.CreateNoWindow = true; 
      process.StartInfo.RedirectStandardOutput = true; 
      process.StartInfo.RedirectStandardInput = true; 
      process.StartInfo.RedirectStandardError = true; 
      process.Start(); 


      StreamWriter sw = process.StandardInput; 
      StreamReader sr = process.StandardOutput; 

      sw.WriteLine("cd " + curlDirectory); 

      sw.WriteLine("curl " + curlArgs + " -F [email protected]" + filePath); 

      sw.WriteLine("exit"); 
      sw.Close(); 

      string cURLResults = string.Empty; 
      cURLResults = sr.ReadToEnd(); 


      sr.Close(); 

      sw = new StreamWriter("C:\\out.txt", true); 
      sw.WriteLine(cURLResults); 
      sw.Close(); 

      return false; 

     } 

Microsoft Windows XP [Версия 5.1.2600 ] (C) Copyright 1985-2001 Microsoft Corp.

C: \ Dev \ VS \ Bin> CD C: \ Curl \

C: \ завиток> завиток -v -u -k ххххх: ххххххх SFTP: //ftp.xxxx.co.uk -F файл = @ C: \ mydoc.txt

C: \ завиток> выход

ответ

1

Curl, кажется, посылает все выходные данные на стандартную ошибку, а не стандартную.

+0

Работал, спасибо большое! – 2010-03-08 09:48:31

Смежные вопросы