Apagar arquivos e pastas recursivamente no Teams
Este artigo aborda como usar o PowerShell para apagar ficheiros e pastas recursivamente no Teams / SharePoint. Apagar pastas e arquivos no Teams / SharePoint pode ser uma tarefa desafiadora, especialmente quando se trata de pastas com milhares de arquivos e sub-pastas. Nesse caso, o PowerShell pode ser uma ferramenta útil para automatizar esse processo.
Para começar, você precisa conectar-se ao seu site SharePoint usando o comando Connect-PnPOnline
. Em seguida, você precisará obter a referência para o web e a pasta que você deseja excluir.
O script abaixo é um exemplo de como apagar todos os arquivos e sub-pastas de uma pasta no SharePoint:
#Parameters
$SiteURL = "https://example.sharepoint.com/personal/example"
$FolderSiteRelativeURL = "/personal/example"
#Connect to the Site
Connect-PnPOnline -URL $SiteURL -UseWebLogin
#Get the web & folder
$Web = Get-PnPWeb
$Folder = Get-PnPFolder -Url $FolderSiteRelativeURL
#Function to delete all Files and sub-folders from a Folder
Function Empty-PnPFolder([Microsoft.SharePoint.Client.Folder]$Folder)
{
#Get the site relative path of the Folder
If($Web.ServerRelativeURL -eq "/")
{
$FolderSiteRelativeURL = $Folder.ServerRelativeUrl
}
Else
{
$FolderSiteRelativeURL = $Folder.ServerRelativeUrl.Replace($Web.ServerRelativeURL,[string]::Empty)
}
#Delete all files in the Folder
$Files = Get-PnPFolderItem -FolderSiteRelativeUrl $FolderSiteRelativeURL -ItemType File
ForEach ($File in $Files)
{
#Delete File
Remove-PnPFile -ServerRelativeUrl $File.ServerRelativeURL -Force -Recycle
Write-Host -f Green ("Deleted File: '{0}' at '{1}'" -f $File.Name, $File.ServerRelativeURL)
}
#Process all Sub-Folders
$SubFolders = Get-PnPFolderItem -FolderSiteRelativeUrl $FolderSiteRelativeURL -ItemType Folder
Foreach($SubFolder in $SubFolders)
{
#Exclude "Forms" and Hidden folders
If(($SubFolder.Name -ne "Forms") -and (-Not($SubFolder.Name.StartsWith("_"))))
{
#Call the function recursively
Empty-PnPFolder -Folder $SubFolder
#Delete the folder
$ParentFolderURL = $FolderSiteRelativeURL.TrimStart("/")
Remove-PnPFolder -Name $SubFolder.Name -Folder $ParentFolderURL -Force -Recycle
Write-Host -f Green ("Deleted Folder: '{0}' at '{1}'" -f $SubFolder.Name, $SubFolder.ServerRelativeURL)
}
}
}
#Call the function to empty folder
Empty-PnPFolder -Folder $Folder
Substitua as variaveis $SiteURL
pelo seu link do Sharepoint e $FolderSiteRelativeURL
pela diretoria onde estão os ficheiros e diretorias que quer apagar.$SiteURL = "https://sos-admins.sharepoint.com/personal/spo_oky_sos-admins_com"
$FolderSiteRelativeURL = "/personal/spo_oky_sos-admins_com/Documents/test"
Desta forma apaga todos os ficheiros e pastas dentro da pasta pessoal /Documents/test
do Teams.
Este script utiliza o cmdlet Get-PnPFolderItem
para obter uma lista de todos os arquivos e sub-pastas na pasta especificada, e em seguida chama recursivamente a função Empty-PnPFolder
para excluir todos os arquivos e sub-pastas. Também utiliza os cmdlets Remove-PnPFile
e Remove-PnPFolder
para apagar os ficheiros e pastas.
Pode encontrar o powershell script no GitHub
Pode fazer uma doação para ajudar a mater o site, Obrigado!