Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 从变量中删除重复项_Powershell_Powershell 3.0 - Fatal编程技术网

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 ";"