Forum Discussion
Dan_CS
Aug 23, 2022Copper Contributor
Powershell Clean up Folder Names - Rename Folders and Subfolders Recursively
Hi friends, I hope I have posted this in the correct forum. I am trying to rename folders and subfolders. I am cleaning up the folders names first removing junk spaces and things I ...
- Aug 23, 2022
Dan_CS It's the special characters, if you replace @ with at for example, it does work for me
$Source_Folder = 'd:\temp\Test' $folders = Get-ChildItem -LiteralPath $Source_Folder -Directory Foreach ($folder in $folders) { $new_folder_name = $folder.Name # Remove Characters $new_folder_name = $new_folder_name -replace '#', ' ' # Remove Hyphen with _ $new_folder_name = $new_folder_name -replace '-', '_' # Remove @ with at $new_folder_name = $new_folder_name -replace '@', 'at' # and some more replacements...... Write-Host "Renaming:" $folder.FullName "to" $new_folder_name Rename-Item "$($folder.FullName)" "$($new_folder_name)" -Verbose }
Aug 23, 2022
Dan_CS I changed it a little for you, the target path shouldn't be in full name, just the directory name
$Source_Folder = 'd:\temp\Test'
$folders = Get-ChildItem -Directory -Recurse $Source_Folder
Foreach ($folder in $folders) {
$new_folder_name = $folder.Name
# Remove Characters
$new_folder_name = $new_folder_name -replace '#', ' '
# Remove Hyphen with _
$new_folder_name = $new_folder_name -replace '-', '_'
# and some more replacements......
Write-Host "Renaming:" $folder.FullName "to" $new_folder_name
Rename-Item "$($folder.FullName)" "$($new_folder_name)"
}Dan_CS
Aug 23, 2022Copper Contributor
Hello Harm,
thank you for your help.
It did rename some folders but some I get errors like below
Rename-Item : Source and destination path must be different.
At C:\Users\Dan\Desktop\FORUM Folder.ps1:44 char:5
+ Rename-Item $($folder.FullName) $($new_folder_name)
Also another error folder does not exist.
I will keep trying and testing
Thank you
- Aug 23, 2022Ok, but what is the source en destination at that moment? What's the output from line 14? (Write-Host "Renaming"...
- Dan_CSAug 23, 2022Copper ContributorI wanted to rename the folders exactly where they are originally
===================================================
PS C:\Users\Dan\Desktop> C:\Users\Dan\Desktop\FORUM Folder.ps1
Renaming: C:\Users\Dan\Desktop\1\1 - #Test to 1 _ Test
Renaming: C:\Users\Dan\Desktop\1\2 - Content to 2 _ Content
Renaming: C:\Users\Dan\Desktop\1\3 - Test to 3 _ Test
Renaming: C:\Users\Dan\Desktop\1\2 - Content\2.1 - # Test to 2.1 _ Test
Rename-Item : Cannot rename because item at 'C:\Users\Dan\Desktop\1\2 - Content\2.1 - # Test' does not exist.
At C:\Users\Dan\Desktop\FORUM Folder.ps1:41 char:5
+ Rename-Item "$($folder.FullName)" "$($new_folder_name)"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
Renaming: C:\Users\Dan\Desktop\1\2 - Content\2.1 - # Test\2.2 @ # Test to 2.2 Test
Rename-Item : Cannot rename because item at 'C:\Users\Dan\Desktop\1\2 - Content\2.1 - # Test\2.2 @ # Test' does not exist.
At C:\Users\Dan\Desktop\FORUM Folder.ps1:41 char:5
+ Rename-Item "$($folder.FullName)" "$($new_folder_name)"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
Renaming: C:\Users\Dan\Desktop\1\3 - Test\3.1 - @ to 3.1 _
Rename-Item : Cannot rename because item at 'C:\Users\Dan\Desktop\1\3 - Test\3.1 - @' does not exist.
At C:\Users\Dan\Desktop\FORUM Folder.ps1:41 char:5
+ Rename-Item "$($folder.FullName)" "$($new_folder_name)"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
Renaming: C:\Users\Dan\Desktop\1\3 - Test\3.2 - # @ to 3.2 _
Rename-Item : Cannot rename because item at 'C:\Users\Dan\Desktop\1\3 - Test\3.2 - # @' does not exist.
At C:\Users\Dan\Desktop\FORUM Folder.ps1:41 char:5
+ Rename-Item "$($folder.FullName)" "$($new_folder_name)"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
Renaming: C:\Users\Dan\Desktop\1\3 - Test\3.1 - @\2.2 @ # Test to 2.2 Test
Rename-Item : Cannot rename because item at 'C:\Users\Dan\Desktop\1\3 - Test\3.1 - @\2.2 @ # Test' does not exist.
At C:\Users\Dan\Desktop\FORUM Folder.ps1:41 char:5
+ Rename-Item "$($folder.FullName)" "$($new_folder_name)"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
========================================
sorry for the ugly error messages but this is what it says- Dan_CSAug 23, 2022Copper Contributor
My folder structure.
I wanted to clean up the folder names