文件名首字母大写
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 强调了这一技术。
有没有办法批量将文件 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 强调了这一技术。