使用powershell将文件名中每个单词的首字母大写

Gil*_*lko 16 powershell cmd lowercase uppercase

我想自动更改某些文件的名称.

使用此代码我将小写字母更改为大写:

get-childitem*.mp3 | foreach {if($ .Name -cne $ .Name.ToUpper()){ren $ .FullName $ .Name.ToUpper()}}

但我只希望每个单词的第一个字母都是大写的.

Kla*_*ark 41

您可以使用ToTitleCaseMethod:

$TextInfo = (Get-Culture).TextInfo
$TextInfo.ToTitleCase("one two three")
Run Code Online (Sandbox Code Playgroud)

输出

一二三

$TextInfo = (Get-Culture).TextInfo
get-childitem *.mp3 | foreach { $NewName = $TextInfo.ToTitleCase($_); ren $_.FullName $NewName }
Run Code Online (Sandbox Code Playgroud)


Rob*_*ere 12

我的答案非常相似,但我想提供一种单行解决方案。这也会在强制标题大小写之前强制文本小写。(否则,仅第一个字母有效)

$text = 'one TWO thrEE'
( Get-Culture ).TextInfo.ToTitleCase( $text.ToLower() )
Run Code Online (Sandbox Code Playgroud)

输出:

一二三