У меня возникают проблемы со строкой, в которой анализируется имя, удобное для сертификата, и проверяется, существует ли он. Когда дружественное имя содержит «*», скрипт бомбит.Powershell Сопоставьте строку, которая может содержать asterix
Я знаю, что я мог бы избежать «*», но у меня нет контроля над тем, когда он разбирается в скрипте. Каков наилучший способ либо сбежать на лету, либо совместить строки, когда/если они содержат метасимволы?
# this does not work
# Bad argument to operator '-match': parsing "*.test.com" - Quantifier {x,y} following nothing..
if(Get-ChildItem cert:\ -Recurse | Where-Object {$_.FriendlyName -and $_.FriendlyName -match '*.test.com'} | Select-Object -First 1) {
exit 1
} else {
exit 0
}
# this works fine
if(Get-ChildItem cert:\ -Recurse | Where-Object {$_.FriendlyName -and $_.FriendlyName -match 'string.test.com'} | Select-Object -First 1) {
exit 1
} else {
exit 0
}
Thankyou - да, правильно, я не пытаюсь подстановочное совпадение, совпадение строк - это то, что мне нужно. –