Пробежал по большему размеру выборки, возьми это за то что будешь.Похоже, что быстрее присвоить GCI переменной, чем использовать ее в качестве параметра Get-FileHash
.
Также, как указано в комментариях.Bracketed - это массив, в котором по конвейеру «толкают» каждый объект в функцию.Трубопровод, как правило, медленнее.
Пробежал эти числа примерно в 15 раз и сохранил последние результаты, потому что они были очень похожи.
(Get-ChildItem "*.*" -Recurse).Count
(Measure-Command { Get-FileHash -Algorithm MD5 -Path (Get-ChildItem "*.*" -Recurse) }).TotalSeconds
(Measure-Command { Get-ChildItem "*.*" -Recurse | Get-FileHash -Algorithm MD5 }).TotalSeconds
(Measure-Command { $Test = Get-ChildItem "*.*" -Recurse}).TotalSeconds + (Measure-Command {(get-FileHash -Algorithm MD5 $Test)}).TotalSeconds
# Total Files: 5244
# Seconds to run Bracketed GCI: 18.3848352
# Seconds to run Piped GI: 19.751385
# Seconds to run GCI to Object + Paramed hash: 17.5382904 (1.3471413 + 16.1911491)