Отображение процента процесса на экране DOS - PullRequest
2 голосов
/ 15 апреля 2010

Я использую 7zip в режиме командной строки.

Когда операция занимает достаточно много времени, иногда отображается процент процесса.

Интересно, если мы хотим сделать это с помощью C # / Java, какую библиотеку использовать?

С уважением,

Ответы [ 3 ]

5 голосов
/ 15 апреля 2010

Вы можете напечатать «возврат каретки», также известный как '\r', чтобы вернуть «курсор» в начало строки.

System.out.printf("Progress: %3d %% \r", percentComplete);

Теперь каждый раз, когда вы печатаете строку, вы возвращаетесь к началу, поэтому следующий процент перезаписывает предыдущий.

3 голосов
/ 15 апреля 2010

нет библиотеки. Вы просто печатаете на консоль System.out.print (не println!), А затем отправляете символы возврата для очистки строки.

System.out("Progress 5");
System.out("\b\b\b\b\b\b\b\b\b\b");
System.out("Progress 10");

Я давно этого не делал, но это должно было быть сделано.

0 голосов
/ 15 апреля 2010

Вы можете очистить консоль от ударов ... о, и не забудьте, что string.format имеет процентную поддержку ...

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
          var perc = 0.0;
          while(perc <= 1.0)
          {

            Threading.Thread.Sleep(50); //simulate doing some work

            //EDIT:
            //Console.Clear();
            Console.Write(String.Format("{0:P}\r", perc)); //as per suggestion

            perc += 0.01;
          }
          Console.WriteLine("Press any key to exit");
          var exit = Console.ReadKey();
      }

  }

}

...