2014-01-24 3 views
0

У меня есть список, который содержит тысячи записей, и мне нужно, чтобы они были уникальными. Я нашел скрипт PowerShell онлайн, который будет работать, если у меня будет только один уникальный столбец. Однако мне приходится группировать по 2 столбца, и я не могу понять, как заставить его работать.Удалить повторяющиеся элементы в списке SharePoint

Например, если у меня есть эти данные в списке SP, только если оба столбца являются дубликатами, если элементы будут удалены.

Title  Carrier 
1   Carrier1 
1   Carrier1  *Remove This One 
12  Carrier1 
12  Carrier2 
100  Carrier1 
100  Carrier1  *Remove This One 
100  Carrier2 

Вот пример кода, я нашел в Интернете, который будет работать на 1 колонку, но не 2.

cls 
if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) { 
    Add-PSSnapin Microsoft.SharePoint.PowerShell; 
} 

$ListName = "DuplicateTest" 

$web = Get-SPWeb -identity "http://MyVM/sites/TestSite" 
$list = $web.Lists[$ListName] 

$AllDuplicates = $list.Items.GetDataTable() | Group-Object Title | where {$_.count -gt 1} 
$count = 1 
$max = $AllDuplicates.Count 
foreach($duplicate in $AllDuplicates) 
{ 
    $duplicate.group | Select-Object -Skip 1 | % {$list.Items.DeleteItemById($_.ID)} 
    Write-Progress -PercentComplete ($count/$max * 100) -Activity "$count duplicates removed" -Status "In Progress" 
    $count++ 
} 
+0

Фигурные его, Название Group-Object, Carrier Простой, но эффективный. –

ответ

1

На самом деле, вы, вероятно, хотите использовать Select-Object с параметрами -Unique и -Property ,

$Deduped$list.Items.GetDataTable() | Select-Object -Property Title, Carrier -Unique; 
Смежные вопросы