在 Windows 7 中,根据多个文件夹中附带的 .bar 文件的名称递归重命名 .foo 文件?

在 Windows 7 中,根据多个文件夹中附带的 .bar 文件的名称递归重命名 .foo 文件?

我刚刚使用 Corz Checksum 为我的 MP3 收藏中的每张专辑创建了 SHA1 哈希值。它根据需要在每个文件夹中留下了一个 .hash 文件。(每个文件夹都是一张专辑。)

但是,它生成的哈希文件都具有文件夹的名称,例如

披头士乐队 - 1966 - Revolver.hash

我想自动重命名所有这些 .hash 文件匹配每个文件夹也包含的 .m3u 播放列表文件的名称。例如,

00 - 左轮手枪.m3u

应该导致哈希文件重命名为

00——Revolver.hash

有人知道用命令行执行此操作的方法吗?我希望找到类似的东西:我可以使用哪个命令在 Windows 中递归重命名或移动文件?

答案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"

相关内容