Как оператор, возвращающий false, когда строка содержит обратный тик - PullRequest
0 голосов
/ 04 октября 2019

Это может звучать как глупый вопрос, но я не понимаю, почему наличие символа обратной галочки не удается сравнить с оператором Like.

Например:

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

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

Спасибо заваша помощь

Ответы [ 2 ]

3 голосов
/ 04 октября 2019

Обратный знак (`) работает как escape-символ для шаблонов подстановочных знаков в PowerShell, поэтому шаблон ` интерпретируется как просто пустая строка.

Избегайте его следующим образом:

'`' -like '``'

Остерегайтесь того, что ` является также escape-символом для расширяемых строк (то есть строковых литералов в двойных кавычках) в PowerShell, в этом случае вам придется двойной выход it:

'`' -like "````"
0 голосов
/ 08 октября 2019

Даже в .net это не работает.

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

False
...