Je souhaite modifier automatiquement les noms de certains fichiers.
Avec ce code, je change les lettres minuscules en majuscules:
get-childitem * .mp3 | foreach {if ($ . Name -cne $. Name.ToUpper ()) {ren $ . FullName $. Name.ToUpper ()}}
Mais je veux seulement que la première lettre de chaque mot soit en majuscule.
Vous pouvez utiliser ToTitleCase
Méthode:
$TextInfo = (Get-Culture).TextInfo
$TextInfo.ToTitleCase("one two three")
les sorties
Un deux trois
$TextInfo = (Get-Culture).TextInfo
get-childitem *.mp3 | foreach { $NewName = $TextInfo.ToTitleCase($_); ren $_.FullName $NewName }
Oui, il est intégré à Get-Culture.
gci *.mp3|%{
$NewName = (Get-Culture).TextInfo.ToTitleCase($_.Name)
$NewFullName = join-path $_.directory -child $NewName
$_.MoveTo($NewFullName)
}
Oui, cela pourrait être raccourci en une seule ligne, mais cela devient très long et plus difficile à lire.