繁体   English   中英

对使用 gci 和 -filter 时的性能差异感到好奇

[英]Curious about performance difference when use gci with -filter

请注意以下命令之间的性能差异。 有人知道为什么吗? 只是好奇。

 PS> gci -r *.txt          # this is slower
 PS> gci -r -filter *.txt  # this is faster

这记录在-filter参数下。

- Filter

指定筛选器以限定 Path 参数。 FileSystem提供程序是唯一已安装的支持过滤器的 PowerShell 提供程序。 过滤器比其他参数更有效。 提供程序在 cmdlet 获取对象时应用过滤器,而不是在检索对象后让 PowerShell 过滤这些对象。 过滤器字符串被传递到 .NET API 以枚举文件 API 仅支持 * 和 ? 通配符。

当您在破折号 (-{tab}) 后使用制表符-Path ,建议的第一个参数是-Path ,这就是您的模式被传递到的位置。

所以两个命令是不等价的。 区别应该与-Include-Filter之间的区别相同。 过滤器总是更快,因为它利用文件系统提供程序,而不是仅在检索文件后进行过滤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM