Получите стандартный вывод и все еще отобразите его в консоли

Он отделяет нормальные предварительные условия от предварительных условий только для заказа. Предварительные условия только для заказа должны существовать до того, как цели будут достигнуты, но это все. Цели не переделываются, если их временная метка раньше, чем у предварительных условий только для порядка.

Здесь, если $(DIR) не существует, оно будет выполнено до $(DIR)/dir1, $(DIR)/dir2 и $(DIR)/dir3, но если оно существует и его временная метка позже, чем у одного из подкаталогов, поддиректор не будет быть переделанным.

5
задан mjl5007 24 April 2009 в 16:53
поделиться

2 ответа

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

Если вы хотите отображать вывод по мере выполнения процесса, а не в 1 большом дампе в конце, вы можете использовать событие «OutputDataReceived» класса Process .

3
ответ дан 14 December 2019 в 09:00
поделиться

Вот что я использовал, не используя отдельный поток:


using(System.Diagnostics.Process proc = new System.Diagnostics.Process())
{
   proc.EnableRaisingEvents = false;
   proc.StartInfo.RedirectStandardOutput = true;
   proc.StartInfo.CreateNoWindow = true;
   proc.StartInfo.UseShellExecute = false;
   proc.StartInfo.Verb = "open";
   proc.StartInfo.FileName = "XXXX";
   proc.Start();
   String sLine = "";
   while ((sLine = proc.StandardOutput.ReadLine()) != null)
   {
      System.Console.WriteLine(sLine);
   }
   proc.WaitForExit(); //Jon Skeet was here!
   errorCode = proc.ExitCode;
   proc.Close();
}
4
ответ дан 14 December 2019 в 09:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: