是否有允许您同时应用多个过滤器的-Filter属性语法Get-ChildItem?即如下所示我想找到一些不同但具体命名的.dll,并在两者中使用通配符?
Get-ChildItem -Path $myPath -Filter "MyProject.Data*.dll", "EntityFramework*.dll"
或者我是否需要将其拆分为多个Get-ChildItem调用?因为我正在寻找管道结果.
Fro*_* F. 15
该-Filter参数Get-ChildItem仅支持单个字符串/条件AFAIK.以下是解决问题的两种方法:
您可以使用-Include接受多个字符串匹配的参数.这比-Filter在cmdlet中进行搜索要慢,而-Filter在提供级别完成(在cmdlet获取结果之前可以处理它们).但是,它易于编写和工作.
#You have to use -Recurse to make -Include available even though it's just a single level search
Get-ChildItem -Include "MyProject.Data*.dll", "EntityFramework*.dll" -Recurse
Run Code Online (Sandbox Code Playgroud)
您还可以使用-Filter获取所有DLL,然后在where语句中过滤掉您想要的DLL.
Get-ChildItem -Filter "*.dll" -Recurse | Where-Object { $_.Name -match '^MyProject.Data.*|^EntityFramework.*' }
Run Code Online (Sandbox Code Playgroud)
小智 13
您可以将过滤结果连接到管道中,如下所示:
@("MyProject.Data*.dll", "EntityFramework*.dll") | %{ Get-ChildItem -File $myPath -Filter $_ }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12684 次 |
| 最近记录: |