Requirement: Rename files in SharePoint document library using PowerShell
PowerShell CSOM Script to rename a file in SharePoint Online:
This script renames the given document to new name. How about renaming all files from a SharePoint online document library?
SharePoint online rename files in bulk using PowerShell:
Say in SharePoint online, you want to rename all documents which has a specific string in their names.
Clik here to view.
PowerShell CSOM Script to rename a file in SharePoint Online:
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Set Variables for Site URL, Old File Name and New File Name
$SiteURL= "https://crescent.sharepoint.com/sites/sales/"
$OldFileURL="/sites/Sales/Documents/Legal.docx"
$NewFileURL="/sites/Sales/Documents/LegalTemplate.docx"
#Setup Credentials to connect
$Cred = Get-Credential
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
Try {
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Cred
#Rename the File
$File = $Ctx.Web.GetFileByServerRelativeUrl($OldFileURL)
$File.MoveTo($NewFileURL, [Microsoft.SharePoint.Client.MoveOperations]::Overwrite)
$Ctx.ExecuteQuery()
write-host -f Green "File Renamed successfully!"
}
Catch {
write-host -f Red "Error Renaming File!" $_.Exception.Message
}
This script renames the given document to new name. How about renaming all files from a SharePoint online document library?
SharePoint online rename files in bulk using PowerShell:
Say in SharePoint online, you want to rename all documents which has a specific string in their names.
#Load SharePoint CSOM AssembliesImage may be NSFW.
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Set Variables for Site URL, Library Name and Item ID
$SiteURL= "https://crescent.sharepoint.com/sites/sales/"
$LibraryName="Documents"
$OldString="National"
$NewString="Crescent"
#Setup Credentials to connect
$Cred = Get-Credential
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
Try {
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Cred
#Get the web and Library
$Web=$Ctx.Web
$List=$web.Lists.GetByTitle($LibraryName)
#Get all items
$Query = [Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery()
$ListItems = $List.GetItems($Query)
$Ctx.Load($ListItems)
$Ctx.ExecuteQuery()
#Rename each file matching given old string
Foreach($Item in $ListItems)
{
#Replace string in the File Name
if($Item["FileRef"].ToString().Contains($OldString))
{
$CurrentURL=$Item["FileRef"].ToString()
$NewURL = $CurrentURL.Replace($OldString,$NewString)
$Item.File.MoveTo($NewURL, [Microsoft.SharePoint.Client.MoveOperations]::Overwrite)
$ctx.ExecuteQuery()
Write-host -f Green "Renamed: "$CurrentURL
}
}
}
Catch {
write-host -f Red "Error Renaming File!" $_.Exception.Message
}
Clik here to view.