Powershell
Код:
$folders = (dir "C:\temp\Корень" -directory).fullname
foreach ($folder in $folders) {
dir "$folder" -recurse -file |
group {$_.BaseName -replace '^(\D+_\D+_\d{2}_\d{2}).*','$1'} |% {
$newfolder = "$folder\$($_.Name)"
mkdir "$newfolder"
$_.group.fullname |mv -Destination "$newfolder"
}
# Удаление пустых каталогов
dir "$folder" -Directory |% {if (!(dir "$($_.FullName)")) {del "$($_.FullName)"}}
}