我想自动更改某些文件的名称。用PowerShell为文件名中的每个单词的首字母加上大写
有了这个代码,我改变小写字母为大写:
GET-childitem * .MP3 |的foreach {如果($ 请将.Name -cne $ .Name.ToUpper()){ 仁$ .FullName $ .Name.ToUpper()}}
但我只想要第一个字母每个单词都要大写。
我想自动更改某些文件的名称。用PowerShell为文件名中的每个单词的首字母加上大写
有了这个代码,我改变小写字母为大写:
GET-childitem * .MP3 |的foreach {如果($ 请将.Name -cne $ .Name.ToUpper()){ 仁$ .FullName $ .Name.ToUpper()}}
但我只想要第一个字母每个单词都要大写。
您可以使用ToTitleCaseMethod:
$TextInfo = (Get-Culture).TextInfo
$TextInfo.ToTitleCase("one two three")
输出
一二三
$TextInfo = (Get-Culture).TextInfo
get-childitem *.mp3 | foreach { $NewName = $TextInfo.ToTitleCase($_); ren $_.FullName $NewName }
没错,它内置的Get-文化。
gci *.mp3|%{
$NewName = (Get-Culture).TextInfo.ToTitleCase($_.Name)
$NewFullName = join-path $_.directory -child $NewName
$_.MoveTo($NewFullName)
}
是的,它可以缩写为一行,但它变得很长,很难阅读。
这样做,谢谢! – Gilko