gpt4 book ai didi

powershell 性能 : Get-ChildItem -Include vs. Get-ChildItem | Where-对象

转载 作者:行者123 更新时间:2023-12-05 00:48:15 25 4
gpt4 key购买 nike

我尝试了一些选项来迭代我的目录并在以下命令之间获得巨大的性能差异:

慢:

Get-ChildItem -Directory -Force -Recurse -Depth 3 -Include '$tf'

快速:

Get-ChildItem -Directory -Force -Recurse -Depth 3 | Where-Object Name -eq '$tf'

谁能解释一下为什么第一个语句比第二个慢很多?

最佳答案

Get-ChildItem 是一个提供程序 cmdlet - 这意味着它的大部分实际工作被卸载到底层提供程序,在您的情况下可能是 FileSystem 提供程序。

提供程序本身实际上并不支持 -Include/-Exclude 参数,这是 cmdlet 需要注意的少数事情之一 - 并且对于文件系统提供者这是超重的双重工作,因为 cmdlet 需要通过文件系统层次结构向下递归以确定是否需要基于父目录名称应用排除或包含,您可以 see how this is implemented here .

因此,通过对文件系统提供程序使用 -Include,您要求 PowerShell 执行大量的双重工作。

关于powershell 性能 : Get-ChildItem -Include vs. Get-ChildItem | Where-对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52293871/

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