用 PowerShell 的 Rename-Item 批量重命名文件

一条管道即可用正则表达式重命名文件夹内所有匹配文件,比第三方改名工具更灵活也更安全。

Windows文件终端开发中风险
运行 `Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace 'IMG_','Vacation_' }` 批量替换文件名前缀,先加 `-WhatIf` 预演。

01命令

命令
$ Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace 'IMG_','Vacation_' }

02作用说明

Rename-Item 只在原位置重命名、不能移动文件,-NewName 的脚本块会对管道中的每个对象执行一次,`$_` 就是每个文件的 FileInfo。-replace 使用 .NET 正则:写成 `'^IMG_(\d+)\.jpg$', 'photo_$1.jpg'` 即可用捕获组重新编号,也可以基于 `$_.BaseName` 重组文件名并保留扩展名。务必先用 `Get-ChildItem *.txt | Rename-Item -NewName {...} -WhatIf` 演练,它会打印将要发生的改动而不动任何文件。递归处理子目录加 `Get-ChildItem -Recurse -File`;这里的撤销命令之所以有效,是因为正则替换恰好是对称的。

03风险

风险中风险
使用条件PowerShell (any version); run inside the target folder and preview with -WhatIf first.
!注意: 正则批量重命名一旦改完,新名字往往无法再被原模式匹配,难以一键还原——先 -WhatIf 预演,试验阶段请复制一份再操作。

04撤销

撤销
$ Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace 'Vacation_','IMG_' }

05来源

  • Rename-Item | Microsoft Learn
    Microsoft · vendor-doc · 2026-09-17
    依据: Microsoft documents Rename-Item as renaming an item in place, accepting a script block for -NewName and supporting the -WhatIf preview switch.
  • Rename-Item - Rename a file - PowerShell
    SS64 · technical · 2026-09-17
    依据: SS64 shows Rename-Item used with the -replace operator in a script block for bulk renaming pipelines.

最后验证: 2026-09-17 · 分类: 文件与文件夹

06相关方案