这只是似乎执行一个脚本块,并确认收益为True。从有限的测试中,PS对象的哪里更快(〜1秒)。注意:Stopwatch可能不准确。 Where-Object具有文档并且执行速度比ForEach-Object快。 BeWhere PSv4中存在错误。
如果脚本块
write-host "Started at $(get-date)"
$j = $i.Where({$_ -like "*"})
write-host "Ended at $(get-date)"
write-host "Total Elapsed Time: $($elapsed.Elapsed.ToString())"
00:00:00.0309266
ForEach-Object
$elapsed = [System.Diagnostics.Stopwatch]::StartNew()
write-host "Started at $(get-date)"
$j = $i | %{$_ -like "*"}
write-host "Ended at $(get-date)"
write-host "Total Elapsed Time: $($elapsed.Elapsed.ToString())"
00:00:01.0555753
Where-Object
$elapsed = [System.Diagnostics.Stopwatch]::StartNew()
write-host "Started at $(get-date)"
$j = $i | ?{$_ -like "*"}
write-host "Ended at $(get-date)"
write-host "Total Elapsed Time: $($elapsed.Elapsed.ToString())"
00:00:00.0348174