Today I needed to svn mv a bunch of generated code files. I quickly popped open a Power Shell window and built this up incrementally (in about 2 minutes).
We switched from generating derived classes to generating base classes, then deriving from them (I call this "the sandwich model.") I wanted the history to show the flow from what was our derived classes into what are now base classes.
Anyway, fuzzy mass renaming seems like a major strength of power shell for me lately:
ls *.cs
| where {$_.Name -cnotlike '*WorkItem*' -and $_.Name -cnotlike '*Base*'}
|% {$baseName = [System.IO.Path]::GetFileNameWithoutExtension($_);
$oldName = $baseName + '.cs';
$newName = $baseName + 'Base.cs';
svn mv $oldName $newName;}