我想自動更改某些文件的名稱。用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