Measure-Command コマンドレットの使用
良かれ悪しかれ、スクリプトやコマンドの実行時間を懸念することはよくあります。特定のタスクを実行する時間が気になる場合、Measure-Command コマンドレットがまさにお探しのものです。このコマンドレットを使用すると、コマンドまたはスクリプトの実行時間をミリ秒単位で計測できます (実際のところ、ミリ秒以外でも実行時間を計測できます。ただし、現時点では説明を省略します)。
Measure-Command を使用するには、このコマンドレットを呼び出して、コマンドレット パラメータにコマンドまたはスクリプトを使用します (波かっこで値を囲みます)。たとえば、次のコマンドは Get-Service コマンドレットを実行し、データを XML ファイル C:\Scripts\Test.xml にエクスポートします。さらに、コマンドが完了するまでにかかる時間を追跡します。
Measure-Command {Get-Service | Export-Clixml c:\scripts\test.xml}
このコマンドを実行すると、サービス情報はファイル Test.xml に保存されます。また、Measure-Command は次のような情報を返します。
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 980
Ticks : 9807034
TotalDays : 1.13507337962963E-05
TotalHours : 0.000272417611111111
TotalMinutes : 0.0163450566666667
TotalSeconds : 0.9807034
TotalMilliseconds : 980.7034
この同じ機能をスクリプトで実行するには、そのスクリプト名を Measure-Command パラメータとして渡すだけです。次のコマンドは、スクリプト C:\Scripts\Test.ps1 を実行し、おまけに実行時間も返します。
Measure-Command {c:\scripts\test.ps1}
戻り値を次に示します。
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 971
Ticks : 9717422
TotalDays : 1.12470162037037E-05
TotalHours : 0.000269928388888889
TotalMinutes : 0.0161957033333333
TotalSeconds : 0.9717422
TotalMilliseconds : 971.7422
おわかりのように、少なくともこの場合、Windows PowerShell コンソールからコマンドを実行することと、Windows PowerShell スクリプトからまったく同じコマンドを実行することの間には、実質的な差異はありません。