就像当字符串包含反引号时运算符返回 false

Like operator returning false when string contains backtick

这听起来像是一个愚蠢的问题,但我不明白为什么反引号的存在无法与 Like 运算符进行比较。

例如:

> 'a' -Like 'a'
True # Seems logical to me

> '`' -Like '`'
False # Why does this return false ?

感谢您的帮助

反引号 (`) 在 PowerShell 中用作通配符模式的转义字符,因此模式 ` 仅被解释为空字符串。

像这样转义:

'`' -like '``'

请注意 ` 也是 PowerShell 中可扩展字符串(即双引号字符串文字)的转义字符,在这种情况下,您必须双转义它:

'`' -like "````"

即使在 .net 中也不起作用。

$pattern = [WildcardPattern]::new('`')
$pattern.IsMatch('`')

False