$prefixes = @( "Yosemite", "Vienna", "Ukrainianpress", "Towers", "TelevisionCity") Get-ChildItem -Path "." -File | ForEach-Object { $newName = $_.BaseName foreach ($prefix in $prefixes) { $newName = $newName -replace "^$prefix[-_]*", "" # Remove prefix and trailing dash/underscore } $newName = $newName -replace "^[-_]+", "" # Trim leading dashes/underscores $newName = $newName -replace "_{2,}", "_" # Collapse multiple underscores $newName = $newName -replace "^_+|_+$", "" # Trim stray underscores $newName += $_.Extension # Reattach original extension if ($newName -ne $_.Name) { Rename-Item -Path $_.FullName -NewName $newName } }