51CTO Blog地址:https://blog.51cto.com/u_13969817
通常删除文件夹可以在UI界面操作比较方面,但是如果想快速的删除文件夹以及其child folder,该如何操作呢?
解决方案:本文将介绍如何使用PnP PowerShell脚本删除SharePoint文档库中的文件夹:第一步是通过运行cmdlet: Connect
PnPOnline来完成连接到您的SharePoint Online网站;连接后,可以通过运行命令删除文件夹:Remove PnPFolder。
首先,将要删除的文件夹和子文件夹保存到csv文件中,如下所示:
执行PnP Powershell,删除上述文件夹和子文件夹,脚本如下所示:
$SiteURL = "https://byrondemo.sharepoint.com/sites/Project"
$CSVFilePath = "C:UsersByronDesktopBulkDeleteFolders.csv"
Connect-PnPOnline -Url $SiteURL -Interactive
$CSVFile = Import-CSV $CSVFilePath | Sort-Object ParentFolderSiteRelativeURL -Descending
ForEach($Row in $CSVFile)
{
Try {
$Folder = Get-PnPFolderItem -FolderSiteRelativeUrl $Row.ParentFolderSiteRelativeURL -ItemName $Row.FolderName
If($Folder -ne $Null)
{
Write-Host -f Yellow "Deleting Folder '$($Row.FolderName)' from $($Row.ParentFolderSiteRelativeURL)..."
Empty-PnPFolder $Folder
Remove-PnPFolder -Name $Row.FolderName -Folder $Row.ParentFolderSiteRelativeURL -Recycle -Force
Write-host -f Green "`tFolder '$($Row.FolderName)' Deleted Successfully!"
}
Else
{
Write-Host "Folder '$($Row.FolderName)' doesn't exists at $($Row.ParentFolderSiteRelativeURL)" -ForegroundColor Yellow
}
}
Catch {
write-host -f Red "`tError:" $_.Exception.Message
}
}
如果预将文件和文件夹全部删除,那么命令为:
$SiteURL = "https://byrondemo.sharepoint.com/sites/Project"
$CSVFi服务器托管网lePath = "C:UsersByronDesktopBulkDeleteFolders.csv"
Function Empty-PnPFolder($Folder)
{
If($Folder.Context.Web.ServerRelativeUrl -eq "/")
{
$FolderSiteRelativeURL = $Folder.ServerRelativeUrl
}
Else
{
$FolderSiteRelativeURL = $Folder.ServerRelativeUrl.Replace($Folder.Context.Web.ServerRelativeURL,[string]::Empty)
}
$Files = Get-PnPFolderItem -FolderSiteRelativeUrl $FolderSiteRelativeURL -ItemType File
ForEach ($File in $Files)
{
Remove-PnPFile -ServerRelativeUrl $File.ServerRelativeURL -Force -Recycle
Write-Host -f Green ("`tDeleted File: '{0}' at '{1}'" -f $File.Name, $File.ServerRelativeURL)
}
$SubFolders = Get-PnPFolderItem -FolderSiteRelativeUrl $FolderSiteRelativeURL -ItemType Folder
Foreach($SubFolder in $SubFolders)
{
If(($SubFolder.Name -ne "Forms") -and (-Not($SubFolder.Name.StartsWith("_"))))
{
Empty-P服务器托管网nPFolder -Folder $SubFolder
Remove-PnPFolder -Name $SubFolder.Name -Folder $FolderSiteRelativeURL -Force -Recycle
Write-Host -f Green ("`tDeleted Folder: '{0}' at '{1}'" -f $SubFolder.Name, $SubFolder.ServerRelativeURL)
}
}
}
谢谢大家的阅读。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 你所不知道的ASP.NET Core进阶系列(三)
前言 一年多没更新博客,上一次写此系列还是四年前,虽迟但到,没有承诺,主打随性,所以不存在断更,催更,哈哈,上一篇我们细究从请求到绑定详细原理,本篇则是探讨模型绑定细节,当一个问题产生到最终解决时,回过头我们整体分析其产生背景以及设计思路才能有所获。好了,废话…