PowerShell 技能连载 - 明智地使用进度条
PowerShell 支持使用进度条。这是一个很简单的例子:
1 | 1..100 | ForEach-Object { |
如果您没有过度使用 Write-Progress
,那么使用进度条是很有价值的。特别在一个长时间的循环中,在循环的每一圈中调用一次 Write-Progress
并没有意义。如果那么做,脚本会变得非常慢。
假设您的循环运行 10000 次。显示一个进度条会显著地拖慢脚本:
1 | $min = 1 |
延迟的时间和 Write-Progress
的调用次数直接相关,所以如果您将 $max
的值改为 100000,该脚本会运行 10 倍的时间,只因为 Write-Progress
调用的次数达到 10 倍。
所以您需要使用一种智能的机制来限制 Write-Progress
的次数。以下例子每增加 0.1% 时跟新一次进度条:
1 | $min = 1 |
当您增加 $max
的数值,您会注意到脚本并不会增加多少时间,因为调用 Write-Progress
的次数仍然没变。
PowerShell 技能连载 - 明智地使用进度条
http://blog.vichamp.com/2017/01/19/using-a-progress-bar-wisely/