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

PowerShell中包含反引号(`)的字符串使用-like比较结果异常问题

PowerShell含反引号字符串用-like比较返回false的问题说明

根因

  • PowerShell 中-like运算符执行通配符匹配逻辑,反引号(`)是通配符语法的专用转义字符,会被优先识别为转义标记,而非普通字符
  • 测试语句'abc@01' -like 'abc@01'中,右侧匹配模式里的反引号会被判定为对后续@的转义操作,实际生效的匹配规则变为匹配无反引号的abc@01,和左侧带反引号的原字符串不一致,因此返回false
  • 其他普通特殊字符(如@、#、%等)不属于通配符保留字符,不会触发转义逻辑,因此同类比较可正常返回true

解决方案

  • 方案1:仅需要精确相等判断时,直接使用-eq运算符,该运算符执行纯字面量字符串对比,不会处理转义规则:
'abc`@01' -eq 'abc`@01'
# 输出:True
  • 方案2:如果必须使用-like(需要同时搭配*/?等通配符逻辑),给模式中的反引号额外加一层转义,两种写法均可:
    1. 用双反引号转义单个反引号:
    'abc`@01' -like 'abc``@01'
    # 输出:True
    
    1. 用方括号包裹反引号,标记为普通匹配字符:
    'abc`@01' -like 'abc[`]@01'
    # 输出:True
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:45:04