gpt4 book ai didi

PowerShell 管道

转载 作者:行者123 更新时间:2023-12-02 23:05:24 32 4
gpt4 key购买 nike

如果我运行以下命令:

Measure-Command -Expression {gci -Path C:\ -Recurse -ea SilentlyContinue | where Extension -eq ".txt"}
Measure-Command -Expression {gci -Path C:\ -Filter *.txt -Recurse -ea SilentlyContinue}

第二个表达式总是比第一个表达式快,我猜是因为它不必使用管道。

我想也许在管道方法中,PowerShell 递归了我的驱动器并将对象集合传递给 where 子句,这将不得不再次遍历这些项目,但我排除了这种可能性,因为如果你运行第一个表达式,你可以看到它在递归时返回输出。那么为什么 Pipeline 方法比较慢呢?

最佳答案

使用 Where-Object 总是比使用左侧命令的内置参数慢。您首先将所有对象带到您的外壳中,然后才开始过滤它们(客户端过滤)。

关于 -Filter 参数,它的工作速度更快,因为它在提供者级别执行(服务器端过滤),一旦访问对象就会被检查,您只会取回符合条件的对象。

关于PowerShell 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12138799/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com