Powershell проверяет адрес электронной почты по списку адресов электронной почты

#string #powershell

#строка #powershell

Вопрос:

Я слишком долго зацикливался на этой задаче. Я пытаюсь проверить, есть ли переменная string($email) в списке строк ($emaillist).

итак, если

 $email = "you@email.com"

$t = $emaillist | Select-String $email

#If statement#$
if($t) 
{
write-host "yes" -ForegroundColor Green
}
else
{
write-host "No" -ForegroundColor red
}
 

Это не работает, потому что часть строки передается. Итак, я думаю, мне нужно использовать какое-то регулярное выражение? ‘^ $’
Не уверен, как использовать регулярное выражение и переменную?

Любая помощь приветствуется, спасибо

Ответ №1:

Если $emaillist это действительно список строк, зачем использовать Select-String ??

Просто сделайте

 if ($emaillist -contains $email) {
    write-host "yes" -ForegroundColor Green
}
else {
    write-host "No" -ForegroundColor red
}
 

Ответ №2:

 if ($emaillist -contains $email){
write-host "yes" -ForegroundColor Green
}
 

вы также можете использовать -in

некоторые примеры

 $emaillist = @('abc@gmail.com','edf@gmail.com')
$email = 'abc@gmail.com'

$emaillist -contains $email ## true

$email -in $emaillist ##  returns true