В ходе экспериментов со списками SharePoint 2013, например когда тестируется массовая загрузка элементов списка, может возникнуть необходимость в очистке списка. Пример скрипта PowerShell для непосредственного удаления всех элементов какого либо списка:
$url = "http://site1.holding.com" $listName = "Test" # $snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'} if ($snapin -eq $null) { Write-Host "Загрузка оснастки SharePoint Powershell" Add-PSSnapin "Microsoft.SharePoint.Powershell" } # $web = Get-SPWeb $url $list = $web.Lists[$listName] # # Удаляем папки # $collFolders = $list.Folders $count = $collFolders.Count - 1 for($i = $count; $i -gt -1; $i--) { $collFolders.Delete($i) } # # Удаляем элементы списка # $items = $list.GetItems() $items | ForEach-Object{ $list.GetItemById($_.Id).Delete() } $list.Update() $web.Dispose() Write-Host 'Удаление завершено'
Добрый день!
А как быть, если необходимо почистить библиотеку? Если я пишу имя библиотеки вместо списка, то выдает ошибку:
You cannot call a method on a null-valued expression.
At C:\del_all.ps1:28 char:1
+ $list.Update()
+ ~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
И можно ли в скрипте прописать несколько списков\библиотек, чтобы полностью почистить их одним скриптом?
Заранее благодарю за ответ
Судя по ошибке в Вашем случае значение переменной $list является null, то есть не содержит ссылки на библиотеку как объект. То есть похоже на то, что вы написали что-то не то в переменные $url и/или $listName в начале скрипта. После того, как в консоли PowerShell появляется эта ошибка, посмотрите значение переменной $list. Оно не должно быть пустое.
В текущем варианте нельзя. Для этого надо расширять скрипт, добавив в него например обработку входящих параметров и удаление в цикле обработки этих параметров.
Если у Вас остаются вопросы по выполнению скрипта в Вашем конкретном случае, то предлагаю перенести это обсуждение в форум http://forum.it-kb.ru/viewforum.php?f=37