У меня небольшая проблема с командой (if) в PowerShell

#powershell

Вопрос:

Во-первых, я покажу свой проект

 $url = Read-Host 'URL' if ( $url -notmatch '.'){  msg * "The title does not contain(.)" }  

Объяснение кода

Код должен предупредить вас о том, что на сайте нет .

Проблема в том, что код предупреждает вас, если ссылка содержит один . раз, я хочу, чтобы он предупредил меня, если найдет ее . дважды

Пример (псевдокод):

 $url = Read-Host 'URL' if ( $url -notmatch '.' = 2){  msg * "The title does not contain 2 (.)" }  

Комментарии:

1. = является оператором присваивания. Вы используете редактор кода? Вы должны увидеть ошибку при неправильном вводе конструкции if.

2. Я знаю, что это неправильно, это просто пример того, чего я хочу

Ответ №1:

= является присваиванием, а не оператором равенства.

Если вы хотите, чтобы в данном URL-адресе было не менее 2 точек, попробуйте

 $url = Read-Host 'URL' if ( [regex]::matches($Url, '.').Count -lt 2 ){  msg * "The url does not contain at least 2 dots (.)" }