在PowerShell中,有没有一种简单的方法来计算命令的执行时间,就像Linux中的“time”命令一样?
我想出了这个:
$s=Get-Date; .\do_something.ps1 ; $e=Get-Date; ($e - $s).TotalSeconds
但是我想要一些简单的东西,比如
time .\do_something.ps1
发布于 2010-08-18 23:18:57
是啊。
Measure-Command { .\do_something.ps1 }
请注意,Measure-Command
的一个小缺点是看不到stdout
输出。
更新,感谢@JasonMArcher,你可以通过管道将命令输出传递给某个写入主机的命令小程序,例如Out-Default
,这样它就变成了:
Measure-Command { .\do_something.ps1 | Out-Default }
查看输出的另一种方法是使用.NET Stopwatch
类,如下所示:
$sw = [Diagnostics.Stopwatch]::StartNew()
.\do_something.ps1
$sw.Stop()
$sw.Elapsed
发布于 2010-08-19 04:10:14
您还可以从历史记录中获取最后一个命令,并从它的StartExecutionTime
中减去它的EndExecutionTime
。
.\do_something.ps1
$command = Get-History -Count 1
$command.EndExecutionTime - $command.StartExecutionTime
发布于 2014-07-08 02:39:14
使用Measure-Command
示例
Measure-Command { <your command here> | Out-Host }
连接到Out-Host
的管道允许您查看命令的输出,否则将由Measure-Command
使用。
https://stackoverflow.com/questions/3513650
复制相似问题