Powershell для удаления файлов из библиотек документов SharePoint - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь создать несколько файлов из нескольких библиотек SharePoint в SharePoint 2010 на сервере приложений в ферме с помощью приведенного ниже сценария:

$list = Get-Content $libpath
$web = Get-Spweb $url
$lib = $web.Lists | where { $_.title -eq $libname }
foreach ($libr in $lib) {
  $file = $libr.Items
  foreach ( $fil in $file) {
    If ($fil.Name -eq $item) {
      $fil.Delete()
    }
  }
}

Проблема в том, что $libr.Items появляется пустым, хотя библиотека не пуста.

$libr.Files 
$libr.Files.Name 

Все также отображаются пустыми.

Пожалуйста, помогите исправить это. Спасибо

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Не уверен, что это делает:

$lib = $web.Lists | where { $_.title -eq $libname }
foreach ($libr in $lib) {

$ lib в этом случае должна быть единой библиотекой, почему foreach? Могу ли я предложить вам получить библиотеку в явном виде, а затем убедиться, что она существует:

$lib = $web.lists.TryGetList($libname)
if ($lib) {
    $items = $lib.items
    foreach ($item in $items) {
        #Your logic here
        #Do you really want to delete? Maybe use $item.Recycle()
    }
}

Также, если вы знаете, что вы хотите удалить заранее, посмотрите на пакетирование, так как вы можете удалять элементы намного быстрее.

0 голосов
/ 27 марта 2019

Попробуйте следующий код.

Add-PSSnapin Microsoft.SharePoint.PowerShell
$SPWeb = Get-SPWeb "Provide your web here"
$docfiles = $SPWeb.GetFolder("Provide your Document Library name here").Files
foreach ($docfile in $docfiles) {
    Write-host "File Name: " $docfile.Name 
    $docfile.Delete();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...