Powershell 从变量中删除重复项
我有一个包含如下内容的邮件变量Powershell 从变量中删除重复项,powershell,powershell-3.0,Powershell,Powershell 3.0,我有一个包含如下内容的邮件变量 if ($user -eq 'abc') {$mail += 'abc@ae.com;'} elseif ($user -eq 'efg') {$mail += 'efg@ae.com;'} elseif ($user -eq 'hij') {$mail += 'hij@ae.com;'} elseif ($user -eq 'klm') {$mail += 'klm@ae.com;'} 现在$mail变量将包含如下内容 abc@ae.com;klm@ae.c
if ($user -eq 'abc') {$mail += 'abc@ae.com;'}
elseif ($user -eq 'efg') {$mail += 'efg@ae.com;'}
elseif ($user -eq 'hij') {$mail += 'hij@ae.com;'}
elseif ($user -eq 'klm') {$mail += 'klm@ae.com;'}
现在$mail变量将包含如下内容
abc@ae.com;klm@ae.com;abc@ae.com;hij@ae.com;klm@ae.com
如何从$mail变量中删除重复邮件。尝试了下面的方法,但没有成功
$mail = $mail | select -unique
$mail | sort | Get-Unique
我将使用
-split
操作符获取邮件数组,然后使用Select-Object-unique
cmdlet删除重复的邮件,最后将数组连接回所需的字符串:
('abc@ae.com;klm@ae.com;abc@ae.com;hij@ae.com;klm@ae.com' -split ';' | Select-Object -Unique) -join ';'
输出:
abc@ae.com;klm@ae.com;hij@ae.com
我将使用
-split
操作符获取邮件数组,然后使用Select-Object-unique
cmdlet删除重复的邮件,最后将数组连接回所需的字符串:
('abc@ae.com;klm@ae.com;abc@ae.com;hij@ae.com;klm@ae.com' -split ';' | Select-Object -Unique) -join ';'
输出:
abc@ae.com;klm@ae.com;hij@ae.com
拆分
+选择对象-唯一
执行此操作
("abc@ae.com;klm@ae.com;abc@ae.com;hij@ae.com;klm@ae.com".Split(';') |Select-Object -Unique) -join ";"
您可以直接使用linq:
$arr = "abc@ae.com;klm@ae.com;abc@ae.com;hij@ae.com;klm@ae.com".Split(";")
[Linq.Enumerable]::Distinct($arr) -join ";"
拆分
+选择对象-唯一
执行此操作
("abc@ae.com;klm@ae.com;abc@ae.com;hij@ae.com;klm@ae.com".Split(';') |Select-Object -Unique) -join ";"
您可以直接使用linq:
$arr = "abc@ae.com;klm@ae.com;abc@ae.com;hij@ae.com;klm@ae.com".Split(";")
[Linq.Enumerable]::Distinct($arr) -join ";"