从变量中删除重复条目
Remove Duplicate entry from a variable
我有一个邮件变量,内容如下
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
完成工作
("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 ";"
我有一个邮件变量,内容如下
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
完成工作
("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 ";"