首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PowerShell中为命令的执行计时

在PowerShell中为命令的执行计时
EN

Stack Overflow用户
提问于 2010-08-18 23:17:11
回答 8查看 165.1K关注 0票数 256

在PowerShell中,有没有一种简单的方法来计算命令的执行时间,就像Linux中的“time”命令一样?

我想出了这个:

代码语言:javascript
复制
$s=Get-Date; .\do_something.ps1 ; $e=Get-Date; ($e - $s).TotalSeconds

但是我想要一些简单的东西,比如

代码语言:javascript
复制
time .\do_something.ps1
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-08-18 23:18:57

是啊。

代码语言:javascript
复制
Measure-Command { .\do_something.ps1 }

请注意,Measure-Command的一个小缺点是看不到stdout输出。

更新,感谢@JasonMArcher,你可以通过管道将命令输出传递给某个写入主机的命令小程序,例如Out-Default,这样它就变成了:

代码语言:javascript
复制
Measure-Command { .\do_something.ps1 | Out-Default }

查看输出的另一种方法是使用.NET Stopwatch类,如下所示:

代码语言:javascript
复制
$sw = [Diagnostics.Stopwatch]::StartNew()
.\do_something.ps1
$sw.Stop()
$sw.Elapsed
票数 408
EN

Stack Overflow用户

发布于 2010-08-19 04:10:14

您还可以从历史记录中获取最后一个命令,并从它的StartExecutionTime中减去它的EndExecutionTime

代码语言:javascript
复制
.\do_something.ps1  
$command = Get-History -Count 1  
$command.EndExecutionTime - $command.StartExecutionTime
票数 200
EN

Stack Overflow用户

发布于 2014-07-08 02:39:14

使用Measure-Command

示例

代码语言:javascript
复制
Measure-Command { <your command here> | Out-Host }

连接到Out-Host的管道允许您查看命令的输出,否则将由Measure-Command使用。

票数 110
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3513650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档