powershell - 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
也都显示为空。
请帮助修复它。谢谢
解决方案
不知道这是做什么的:
$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()
}
}
此外,如果您事先知道要删除的内容,请查看批处理,因为您可以更快地删除项目。
推荐阅读
- forms - 如何使用函数提交表单?反应原生
- google-apps-script - Google 脚本的 URL API 解析器替代方案
- expo - 使用 eas-cli 从命令行以非交互方式设置 Android Keystore?
- c# - C# System.Data.OleDb.OleDbException:“溢出”
- ios - NSKeyValueCoding.setValue(_:forKey:) 在 SwiftUI 中不起作用
- python-3.x - 在 tk 画布上嵌入图像和 matplotlib 绘图
- eclipse - Eclipse Target 不是 JDK 根目录。未找到 Java 可执行文件
- amibroker - 在 amibroker 中找到 2 个酒吧之间没有任何交叉点的最长线
- c++ - 面临在 Visual Studio Code 上运行 Qt C++ 的问题:控制台上没有输出,没有显示 gui
- sql - 当第二个表没有所有记录时,两个表之间的笛卡尔积