Как засечь время в Powershell

Вообще для измерения скорости выполнения той, или иной команды в Powershell есть командлет Measure-Command. Но в определённых случаях он может не подойти. Например, если нужно не только подсчитать время выполнения команды, но и вывести результат команды на экран – при использовании Measure-Command на экран выводится только его результат.

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

Первое, что приходит на ум – это “вручную” засечь время до начала выполнения команды, и после окончания, после чего высчитать разницу из этих значений:

Но есть более изящный способ.

Это использование объекта System.Diagnostics.Stopwatch:

В полученном результате нам интересно свойство Elapsed.

При таком способе получается чуть более длинная форма вывода, за счёт того, что само свойство Elapsed это ещё не объект временного диапазона (TimeSpan), как в первом случае:

а объект Stopwatch (System.Diagnostics.Stopwatch):

Одно из свойств которого (Elapsed) как раз и содержит интересующее нас время:

Зато не нужно вычислять время вручную.

Обновлено: 07.05.2019 — 14:55

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *