文件名首字母大写

Capitalising the first letters in file name

有没有办法批量将文件 and/or 文件夹中每个单词的首字母大写。即 dennis brown - love light (slow version).mp3 但我希望它看起来像 Dennis Brown - Love Light (Slow Version).mp3? 这可以通过 powershell 完成吗?

当然,PowerShell 有一个内置方法可以执行此操作,使用 Get-Culture cmdlet 根据您的区域首选项将字符串大写。这是对一个字符串执行此操作的方法。

(Get-Culture).textinfo.totitlecase("some thing to uppercase".tolower())
>Some Thing To Uppercase

由于一开始可能难以理解,所以我为您写了一个小示例。此示例显示每个文件的新名称。如果您喜欢您所看到的内容,请删除 -WhatIf 参数。

$files = Get-childitem -Path C:\temp

ForEach($file in $files){
    $CapitalizedName = (Get-Culture).textinfo.totitlecase($file.BaseName.tolower())
    $NameDotExt = "$CapitalizedName$($file.Extension)"
    Rename-item -Path $file.Fullname -NewName $NameDotExt -WhatIf

}

感谢 this blog post 强调了这一技术。