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

Windows PowerShell中findstr命令匹配结果异常问题咨询

问题原因

你遇到的问题是因为findstr是CMD原生命令,参数解析遵循CMD规则,而你在PowerShell中传递参数时的转义方式错误,导致CMD把搜索字符串拆成了两个独立匹配项:name": 和 or。findstr默认会匹配包含任意一个项的行,第2行包含name": ,因此被误匹配。

具体拆解:
你写的命令findstr /n /l "\"name`": `"or",PowerShell会先将其中的``"``解析为普通双引号,传递给CMD的参数变成"name": "or。CMD解析时会把"识别为普通双引号,整个参数被解析为"name": "or——第一个双引号开启引号模式,第二个双引号关闭引号模式,findstr实际收到两个搜索字符串:name": (引号内内容)和or(引号后内容)。第2行的{"name": "moish"}包含name": `,因此被命中。

解决方法
  • 方法一:修正转义方式,让CMD识别单个搜索字符串
    用单引号包裹搜索字符串(PowerShell不解析单引号内的转义),同时保留CMD的双引号转义符\:

    type .\input.json | findstr /n /l '\"name\": \"or'
    

    或者用PowerShell的反引号``转义双引号,确保CMD收到正确格式:

    type .\input.json | findstr /n /l "`\"name`\": `\"or"`
    
  • 方法二:改用PowerShell原生命令,避免跨环境转义问题
    使用Select-String直接匹配,更符合PowerShell使用习惯:

    Get-Content .\input.json | Select-String -Pattern '"name": "or'
    

    这个命令只会匹配包含"name": "or的行,仅输出第3行结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:01:05