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

PowerShell通配符是否支持‘或’功能?能否匹配mkv或mp4文件?

能否用Get-ChildItem的通配符匹配mkv或mp4文件?

直接通过-Filter参数的通配符实现**“或”逻辑匹配**是不可行的,原因如下:

  1. -Filter的规则限制
    -Filter依赖Windows底层的FindFirstFile API实现文件过滤,它的通配符规则和PowerShell原生语法不同,不支持逻辑“或”操作,也不支持你尝试的[*mkv][*mp4]这类写法——方括号在-Filter的通配符里仅用于匹配单个字符的范围(比如[abc]匹配a、b、c中的任意一个),完全不是你想要的分组或逻辑。你写的那些写法本质上是在匹配包含特定单个字符的文件名,自然找不到目标文件。

  2. 可行的替代通配符方案
    如果你不想用-match或Where-Object,可以改用-Include参数,它支持PowerShell原生的多通配符列表,实现“或”匹配:

    # 匹配c:/temp下的mkv和mp4文件(路径末尾加*确保只查当前目录)
    Get-ChildItem -Path 'c:/temp/*' -File -Include *.mkv,*.mp4
    

    或者如果需要递归查找,也可以去掉路径末尾的*,加上-Recurse参数:

    Get-ChildItem -Path 'c:/temp' -File -Include *.mkv,*.mp4 -Recurse
    

总结:-Filter参数的通配符无法实现“或”匹配,必须用-Include(或你知道的-match/Where-Object)来完成需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 09:24:56