我正在尝试使用以下脚本从服务器场中的应用程序服务器上的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
所有内容也显示为空。
请帮助修复它。 谢谢
答案 0 :(得分:0)
尝试以下代码。
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();
}
答案 1 :(得分:0)
不确定这样做是什么
$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()
}
}
另外,如果您知道要删除的内容,可以进行批处理,这样可以更快地删除项目。