如何在 Powershell 中快速重命名数千个文件?

How can I quickly rename thousands of files in Powershell?

有什么快速方法可以重命名单个目录中的数千个文件?我需要用文件名中特定的最后 3 个字符重命名文件。例如 "TEST-AB.CSV" 应该重命名为 "TEST.CD.CSV"。所以所有名称中最后 3 个字符如“-AB”的文件都替换为“.CD”但是如果“-AB”字符串不在文件名的末尾,则不应重命名文件。

感谢您的帮助。

约翰

这里有一个方法:

$path = "c:\temp"
$counter = 0
Get-ChildItem $path | ? {$_.basename.EndsWith("-AB")}|%{$counter++;rename-item $_.fullname (($_.basename -replace '(.*)(-AB)$','.CB')+$_.extension)}
$counter

编辑

添加了一个计数器。

在 batch/cmd(即不是 PowerShell)中,您可以这样做:

ren *-AB.* *.CD.*

但是如果你需要使用 PowerShell,Micky 的回答就可以了。

Edit 上述语法似乎仅限于 not 引入“.”。进入重命名。所以:

ren *-AB.* *-CD.*

有效,但是:

ren *-AB.* *.CD.*

不会。我建议采用 Micky 的回答