You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何移除$mail变量内的重复邮箱地址条目

问题根因

你尝试的两个去重方法无效,是因为$mail是完整的单字符串,而Select -Unique、Get-Unique都是对数组的元素做去重,直接作用于单字符串不会产生任何去重效果。

正确实现代码

你需要先把字符串按分号分割为邮箱数组,过滤掉分割产生的空值(避免末尾残留分号导致多余空元素),去重后再重新拼接为分号分隔的字符串即可:

$mail = ($mail -split ';' | Where-Object { $_ } | Select-Object -Unique) -join ';'

效果验证

针对你给出的示例值abc@ae.com;klm@ae.com;abc@ae.com;hij@ae.com;klm@ae.com,执行上述代码后输出结果为:
abc@ae.com;klm@ae.com;hij@ae.com,完全符合需求。

原有逻辑优化建议

如果要从根源避免重复问题,你可以修改原有拼接逻辑,直接用数组存储邮箱地址,最后再做拼接,代码更简洁:

# 初始化邮箱数组
$mailArr = @()
if ($user -eq 'abc') {$mailArr += 'abc@ae.com'}
elseif ($user -eq 'efg') {$mailArr += 'efg@ae.com'}
elseif ($user -eq 'hij') {$mailArr += 'hij@ae.com'}
elseif ($user -eq 'klm') {$mailArr += 'klm@ae.com'}
# 去重后拼接为最终字符串
$mail = ($mailArr | Select-Object -Unique) -join ';'

内容的提问来源于stack exchange,提问作者Enigma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 17:57:03