web-dev-qa-db-ja.com

PowerShellでファイル名の各単語の最初の文字を大文字にします

一部のファイルの名前を自動的に変更したい。

このコードを使用して、小文字を大文字に変更します。

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

しかし、私は各単語の最初の文字だけを大文字にしたいです。

17
Gilko

ToTitleCase メソッドを使用できます:

$TextInfo = (Get-Culture).TextInfo
$TextInfo.ToTitleCase("one two three")

出力

一二三

$TextInfo = (Get-Culture).TextInfo
get-childitem *.mp3 | foreach { $NewName = $TextInfo.ToTitleCase($_); ren $_.FullName $NewName }
43
Klark

うん、それはGet-Cultureに組み込まれています。

gci *.mp3|%{
    $NewName = (Get-Culture).TextInfo.ToTitleCase($_.Name)
    $NewFullName = join-path $_.directory -child $NewName
    $_.MoveTo($NewFullName)
}

ええ、1行に短くすることもできますが、非常に長くなり、読みにくくなります。

4