Powershell & Regex - 如何从目录中的文件名中查找和删除大写字符

Powershell & Regex - How to find and delete uppercase characters from file names in directory

我需要一个 Powershell 脚本,它可以在 目录中的所有文件名 中查找并替换大写字符。

脚本会做这样的事情:

之前的文件名:CAPITAL-letters.jpg

文件名之后:-letters.jpg

编辑:我试过 运行 这个脚本,但没用

dir | rename-item -NewName {$_.name -replace [Regex]::Escape("[A-Z"),""}
$test = "CAPITAL-letters.jpg"
$test -creplace "[A-Z]"

=> -letters.jpg

因为这得到了答案,为了完全清楚:

当你 运行 时删除 -WhatIf

Get-ChildItem | Rename-Item -NewName {$_.Name -creplace "[A-Z]"} -WhatIf

这会将 Get-ChildItem 传送到 Rename-Item 中,然后将 NewName 设置为旧名称,除了我们已经区分大小写地将任何大写字母替换为空。