You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中同时使用多组Include/Exclude筛选条件?

解决方案

直接用Get-ChildItem的-Include和-Exclude没法实现这种“分组绑定”的筛选逻辑——这两个参数是全局生效的,所有匹配-Include的文件都会被统一应用-Exclude的排除规则,没法让不同的包含关键词对应不同的排除条件。

正确的做法是先用Get-ChildItem获取目标目录的文件,再通过Where-Object分别定义三组独立的筛选规则:每组规则内部是“包含指定关键词 + 不包含对应排除词”的逻辑,三组规则之间用-or连接(满足任意一组即可):

Get-ChildItem -Path Path/To/Folder | Where-Object {
    # 规则1:文件名包含Basic_TShirt_Men,且不包含black或purple
    ($_.Name -like "*Basic_TShirt_Men*" -and $_.Name -notlike "*black*" -and $_.Name -notlike "*purple*") -or
    # 规则2:文件名包含Basic_Polo_Shirt,且不包含blue
    ($_.Name -like "*Basic_Polo_Shirt*" -and $_.Name -notlike "*blue*") -or
    # 规则3:文件名包含Basic_Shirt_Women,且不包含pink
    ($_.Name -like "*Basic_Shirt_Women*" -and $_.Name -notlike "*pink*")
}

补充说明

  • 如果需要递归筛选子目录里的文件,给Get-ChildItem加上-Recurse参数即可。
  • 若只想筛选文件而非目录,添加-File参数可以排除目录结果。

内容的提问来源于stack exchange,提问作者dc09

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 12:45:37