Powershell - 验证 indexof 是否为空

Powershell - Verify If a indexof is empty

if (($signmail.IndexOf('@')) -ne $null)
   {
   $signname = $signmail.Remove($signmail.IndexOf('@'))
   }
Else{
   $signname = $signmail
   }

你好,基本上,我试着看看用户是完整地输入了他的邮件地址,还是只输入了第一部分。我在这里尝试询问如果邮件地址中@之后的值不为空,则将其删除并将其放入新变量中。如果不是,则该变量直接将其名称提供给另一个变量。但它不起作用。我总是收到 StartIndex 不能低于 0 错误。

有人想办法让这段代码适用于那部分吗?

谢谢

来自the String.IndexOf() documentation

Reports the zero-based index of the first occurrence of a specified Unicode character or string within this instance. The method returns -1 if the character or string is not found in this instance.

因此您需要测试 return 值是否为 0 或更大:

if ($signmail.IndexOf('@') -ge 0) {
    $signname = $signmail.Remove($signmail.IndexOf('@'))
}
else {
    $signname = $signmail
}