Você pode fazer isso com o PowerShell, se estiver confortável com isso.
function Rename-HashFiles ([string]$path)
{
[System.IO.FileInfo[]]$hashFiles = Get-ChildItem -Path $path -Force -Include "*.hash" -Recurse
foreach($hashFile in $hashFiles)
{
[string]$newFileName = [string]::Empty;
Get-ChildItem -Path ($hashFile.DirectoryName) -Filter "*.m3u" | % { $newFileName = [System.IO.Path]::GetFileNameWithoutExtension($_.Name) }
$newFileName += ([System.IO.Path]::GetExtension($hashFile.Name))
Rename-Item -Path $hashFile.FullName -NewName $newFileName
}
}
Rename-HashFiles "C:\My_Music_Folder"