Powershell 将文件名更改为buk中的标题大小写

Powershell 将文件名更改为buk中的标题大小写,powershell,Powershell,我有批量图像文件,我想通过PowerShell将其文件名更改为标题大小写 例如: 像这样的文件名.jpg 致: 像这样的文件名.jpg 我的子文件夹中有700多个文件。 我尝试过以下代码: Get-ChildItem "C:\temp\new" -recurse |Where {-Not $_.PSIsContainer} |Rename-Item -NewName {$_.FullName.TOUPPER()} 但是这个代码将所有字母大写 因此,PowerShell实际上有一种非常简单的方法

我有批量图像文件,我想通过PowerShell将其文件名更改为标题大小写

例如:

像这样的文件名.jpg

致:

像这样的文件名.jpg

我的子文件夹中有700多个文件。
我尝试过以下代码:

Get-ChildItem "C:\temp\new" -recurse |Where {-Not $_.PSIsContainer} |Rename-Item -NewName {$_.FullName.TOUPPER()}

但是这个代码将所有字母大写

因此,PowerShell实际上有一种非常简单的方法,可以使用
Get Culture
的textinfo来实现这一点。该属性包含一个名为
ToTitleCase()
的方法,该方法将完全(几乎)执行您想要的操作。唯一的区别是,它还将“Jpg”中的“J”大写。只是延长了,所以没什么大不了的,对吧

$Culture = Get-Culture
Get-ChildItem "C:\temp\new" -recurse |Where {-Not $_.PSIsContainer} |Rename-Item -NewName {$Culture.textinfo.totitlecase($_.FullName)}

因此,PowerShell实际上有一种非常简单的方法,可以使用
Get Culture
的textinfo来实现这一点。该属性包含一个名为
ToTitleCase()
的方法,该方法将完全(几乎)执行您想要的操作。唯一的区别是,它还将“Jpg”中的“J”大写。只是延长了,所以没什么大不了的,对吧

$Culture = Get-Culture
Get-ChildItem "C:\temp\new" -recurse |Where {-Not $_.PSIsContainer} |Rename-Item -NewName {$Culture.textinfo.totitlecase($_.FullName)}

如果您需要它不改变jpg中的J,您可以尝试
-NewName{[regex]::替换($.FullName,(^ |)),{“$args.ToUpper()}
@TheMadTechnician感谢您的代码工作。。。。对于'J',我使用的代码是PS C:\temp\new>Get ChildItem-Filter.J“-Recurse | Rename Item-NewName{$\uu.name-replace`.J','.J'}。再次感谢..当您的文件已经是大写时,您需要在
{$Culture.textinfo.totitlecase..
。希望它能帮助到别人。如果你需要它来不改变jpg中的J,你可以尝试
-NewName{[regex]::Replace($.FullName,“(^ |”),{$args.ToUpper()}
@TheMadTechnician感谢这段代码的工作……我使用这段代码PS C:\temp\new>Get ChildItem-Filter.J“-Recurse | Rename Item-NewName{$\u.name-replace`.J','.J'}无论如何再次感谢..当您的文件已经是大写时,您需要在
{$Culture.textinfo.totitlecase..
之前使用
toLower()
方法。希望这对其他人有所帮助。