首页 > 解决方案 > Powershell 从 SharePoint 文档库中删除文件

问题描述

我正在尝试使用以下脚本从场中应用程序服务器上的 SharePoint 2010 中的多个 SharePoint 库中获取多个文件:

$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 

也都显示为空。

请帮助修复它。谢谢

标签: powershellsharepointsharepoint-2010

解决方案


不知道这是做什么的:

$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()
    }
}

此外,如果您事先知道要删除的内容,请查看批处理,因为您可以更快地删除项目。


推荐阅读