PowerShell中Get-ChildItem搭配Where-Object筛选含COO目录无返回问题
错误原因
-like运算符无通配符时为完全匹配规则,你当前写的-like 'COO'只会匹配路径恰好为COO的目录,无法命中「路径包含COO」的需求,需要在关键词前后添加通配符*。- 你当前的执行顺序是先选Fullname属性再过滤,虽然不影响结果但会增加不必要的性能损耗,建议调整为「先过滤再选属性」的逻辑。
- 你原代码中的导出路径缺了根目录后的反斜杠,可能会导致路径识别错误。
修复后可正常运行的代码
Get-ChildItem -Path $path -Recurse -Directory | Where-Object {$_.Fullname -like '*COO*'} | Select Fullname | Export-Csv C:\Users\shay\desktop\test.csv -NoTypeInformation
添加-NoTypeInformation参数是为了避免导出的CSV文件首行出现多余的类型描述信息,可按需选择是否保留。
可选优化方案
如果你不需要区分COO的大小写,可以用-ilike替换-like,或者用更简洁的正则匹配写法:
Get-ChildItem -Path $path -Recurse -Directory | Where-Object Fullname -match 'COO' | Select Fullname | Export-Csv C:\Users\shay\desktop\test.csv -NoTypeInformation
内容的提问来源于stack exchange,提问作者Shay Young
相关产品推荐
相关产品推荐

