Eri*_*ver 100 arrays powershell
如何从PowerShell阵列中删除重复项?
$a = @(1,2,3,4,5,5,6,7,8,9,0,0)
Run Code Online (Sandbox Code Playgroud)
Kei*_*ill 177
使用Select-Object例如:
$a = @(1,2,3,4,5,5,6,7,8,9,0,0)
$a = $a | select -Unique
Run Code Online (Sandbox Code Playgroud)
Sha*_*evy 81
另外一个选项:
$a | sort -unique
Run Code Online (Sandbox Code Playgroud)
Dar*_*te1 18
如果您想完全防弹,这就是我的建议:
@('Apples', 'Apples ', 'APPLES', 'Banana') |
Sort-Object -Property @{Expression={$_.Trim()}} -Unique
Run Code Online (Sandbox Code Playgroud)
输出:
Apples
Banana
Run Code Online (Sandbox Code Playgroud)
这首先使用Property参数来Trim()处理字符串,因此会删除多余的空格,然后仅选择-Unique值。
更多信息Sort-Object:
Get-Help Sort-Object -ShowWindow
Run Code Online (Sandbox Code Playgroud)
小智 6
$a | sort -unique
Run Code Online (Sandbox Code Playgroud)
这适用于不区分大小写,因此删除具有不同情况的重复字符串.解决了我的问题.
$ServerList = @(
"FS3",
"HQ2",
"hq2"
) | sort -Unique
$ServerList
Run Code Online (Sandbox Code Playgroud)
这就是您如何从具有两个或多个属性的数组中获得唯一性的方法。排序是至关重要的,也是让它正常工作的关键。否则,您只会退回一件商品。
PowerShell 脚本:
$objects = @(
[PSCustomObject] @{ Message = "1"; MachineName = "1" }
[PSCustomObject] @{ Message = "2"; MachineName = "1" }
[PSCustomObject] @{ Message = "3"; MachineName = "1" }
[PSCustomObject] @{ Message = "4"; MachineName = "1" }
[PSCustomObject] @{ Message = "5"; MachineName = "1" }
[PSCustomObject] @{ Message = "1"; MachineName = "2" }
[PSCustomObject] @{ Message = "2"; MachineName = "2" }
[PSCustomObject] @{ Message = "3"; MachineName = "2" }
[PSCustomObject] @{ Message = "4"; MachineName = "2" }
[PSCustomObject] @{ Message = "5"; MachineName = "2" }
[PSCustomObject] @{ Message = "1"; MachineName = "1" }
[PSCustomObject] @{ Message = "2"; MachineName = "1" }
[PSCustomObject] @{ Message = "3"; MachineName = "1" }
[PSCustomObject] @{ Message = "4"; MachineName = "1" }
[PSCustomObject] @{ Message = "5"; MachineName = "1" }
[PSCustomObject] @{ Message = "1"; MachineName = "2" }
[PSCustomObject] @{ Message = "2"; MachineName = "2" }
[PSCustomObject] @{ Message = "3"; MachineName = "2" }
[PSCustomObject] @{ Message = "4"; MachineName = "2" }
[PSCustomObject] @{ Message = "5"; MachineName = "2" }
)
Write-Host "Sorted on both properties with -Unique" -ForegroundColor Yellow
$objects | Sort-Object -Property Message,MachineName -Unique | Out-Host
Write-Host "Sorted on just Message with -Unique" -ForegroundColor Yellow
$objects | Sort-Object -Property Message -Unique | Out-Host
Write-Host "Sorted on just MachineName with -Unique" -ForegroundColor Yellow
$objects | Sort-Object -Property MachineName -Unique | Out-Host
Run Code Online (Sandbox Code Playgroud)
输出:
Sorted on both properties with -Unique
Message MachineName
------- -----------
1 1
1 2
2 1
2 2
3 1
3 2
4 1
4 2
5 1
5 2
Sorted on just Message with -Unique
Message MachineName
------- -----------
1 1
2 1
3 1
4 1
5 2
Sorted on just MachineName with -Unique
Message MachineName
------- -----------
1 1
3 2
Run Code Online (Sandbox Code Playgroud)
来源: https : //powershell.org/forums/topic/need-to-unique-based-on-multiple-properties/
| 归档时间: |
|
| 查看次数: |
170747 次 |
| 最近记录: |