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

为什么Powershell的-like运算符无法匹配我的目标字符串?

错误原因及解决方案

你操作的核心问题出在运算符使用逻辑错误,以及判断数组包含关系的方法不合理:

  1. -like运算符使用逻辑错误
    -like是通配符匹配运算符,判断规则是左侧值是否匹配右侧的通配符模式。你执行的$repo -like $ph是判断长度更短的$repo能否完全匹配整个数组拍平后的长字符串$ph,显然不符合实际逻辑,必然返回False。
    如果你坚持要通过拍平字符串的方式判断,需要调整运算符两侧的顺序并添加通配符:
$ph -like "*$repo*"
  1. 数组包含判断不需要手动拍平字符串
    PowerShell原生提供了两种判断元素是否存在于数组的运算符,准确性和性能远高于手动拍平字符串的方案,不会出现分隔符冲突等潜在问题:
  • 用-contains运算符(数组在前,待判断元素在后):
$growth_repo_name_list -contains $repo
  • 用-in运算符(待判断元素在前,数组在后):
$repo -in $growth_repo_name_list

你已经验证$repo和$growth_repo_name_list[5]的字节序列完全一致,使用上述两种写法都会返回你预期的True结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:45:03