有人可以解释get-childitem命令中-include和-filter选项之间的区别。
以下是我尝试执行的两段代码。它们都用于查找特定目录中的文本文件:
PS C:\Users\352997> get-childitem -path Desktop\Extras -filter *.txt
Directory: C:\Users\352997\Desktop\Extras
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 12/22/2014 4:05 PM 140 Expense_report.txt
-a--- 1/14/2015 4:41 PM 211 Extras.txt
-a--- 2/10/2015 2:46 PM 259 Learn Dutch.txt
PS C:\Users\352997> get-childitem -path Desktop\Extras -include *.txt
- 上述命令不产生结果----
答案 0 :(得分:10)
Filter
参数由提供商实施。它很有效,因为在检索对象时适用。
Get-PSprovider命令行开关显示实现'过滤器'参数。例如,我的网站只有两个
system:ActiveDirectory和FileSystem
Include
参数由Powershell实现。它仅与Recurse
参数一起使用(因为MSDN描述了here)。
有趣的是:
get-childitem -path Desktop\Extras\ -include *.txt
什么都不返回
get-childitem -path Desktop\Extras\* -include *.txt
返回* .txt文件列表
也许这些只是实施的细微差别。
另见这篇优秀的博文:http://tfl09.blogspot.com/2012/02/get-childitem-and-theinclude-and-filter.html
答案 1 :(得分:0)
-filter
应该比-include
快。 -filter
可以与Powershell 5.1中的短文件名匹配。