2

Я только что закончил создавать хэши SHA1 для каждого альбома в моей коллекции MP3, используя Corz Checksum. Он оставил файл .hash в каждой папке, по желанию. (Каждая папка является альбомом.)

Однако все сгенерированные хеш-файлы имеют имя папки, например

Битлз - 1966 - Revolver.hash

Я хотел бы автоматически переименовать все эти файлы .hash в соответствии с именем файла списка воспроизведения .m3u, который также содержится в каждой папке. Например наличие

00 - Revolver.m3u

должно привести к переименованию файла хеша в

00 - Revolver.hash

Кто-нибудь знает способ сделать это с помощью командной строки? Я надеюсь найти что-то похожее на это: какую команду я могу использовать для рекурсивного переименования или перемещения файла в Windows?

1 ответ1

1

Вы можете сделать это с PowerShell, если вам это удобно.

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"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .