2016-08-16 41 views
1

我有大容量图像文件,我想通过PowerShell将它们的文件名更改为标题大小写。将文件名更改为buk中的标题大小写

例如:

文件名一样this.jpg

要:

文件名一样This.jpg

我有700+的文件在子文件夹中。
我曾尝试这样的代码:

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

但这代码大写所有字母。

回答

4

所以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)} 
+0

如果你需要它的JPG不改变j您可以尝试'-NewName {[正则表达式] ::更换($ _全名。 '(^ |)',{ “的$ args” .ToUpper()})}' – TessellatingHeckler

+0

@TheMadTechnician感谢这个代码的工作....对于'J'即时通讯使用此代码PS C:\ temp \ new> Get-ChildItem -Filter“* .J *”-Recurse | Rename-Item -NewName {$ _。name -replace'.J','。j'}反正再次谢谢.. – deva