PowerShell批量重命名文件需先筛选目标文件并预览,再执行加前缀、序号编号或字符串替换三种操作,全程强调安全预演与编码规范。

用PowerShell脚本批量重命名文件
你需要一次性修改几十个甚至上千个文件的名称,比如统一加前缀、按序号重排、删掉“副本”字样或替换特定字符串,又不想手动一个一个点右键——这时候写一段PowerShell脚本是最稳、最可控的选择。
先筛选出要改名的文件
打开目标文件夹,在空白处按住Shift + 右键,选择“在此处打开 PowerShell 窗口”。
执行命令:Get-ChildItem -File -Filter "*.pdf"——这会列出当前目录下所有PDF文件,确认数量和文件名是否符合预期;若要包含子文件夹,加上 -Recurse 参数。
别直接用 Get-ChildItem * 全盘扫,容易误伤隐藏文件或系统文件。一定要用 -File 明确排除文件夹,用 -Filter 或 -Include 锁定扩展名范围。
安全预演:看清楚再动手
在真正重命名前,必须加 -WhatIf 预览效果。例如想把所有 .txt 改成 .log:
Get-ChildItem *.txt | Rename-Item -NewName { $_.Name -replace '\.txt$', '.log' } -WhatIf
这条命令不会改任何文件,只打印出“将把 A.txt 重命名为 A.log”这样的模拟结果。注意正则里的 \.txt$ ——【$ 表示结尾,防止把 ver.2.txt 错改成 ver.2.log】。如果看到某行输出明显不对,立刻停手检查正则逻辑。
执行重命名(三种常用模式)
方法一:加统一前缀
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
Get-ChildItem *.jpg | ForEach-Object { Rename-Item $_.FullName ($_.Directory.FullName + "\备份_" + $_.Name) }
方法二:按三位数递增编号(从001开始)
第一步:输入 $i = 1 回车
第二步:执行 Get-ChildItem *.png | ForEach-Object { Rename-Item $_.FullName ($_.Directory.FullName + "\图_" + "{0:000}" -f $i++ + $_.Extension) }
第三步:检查生成的文件名是否为“图_001.png”“图_002.png”……
方法三:精准替换文件名中的固定字符串(如删掉“ 副本”)
Get-ChildItem -File | Where-Object {$_.Name -like "* 副本*"} | Rename-Item -NewName { $_.Name -replace " 副本", "" } -ErrorAction SilentlyContinue
【注意空格不能漏——“ 副本”前面有个半角空格,这是Windows默认复制后缀的真实格式】
保存为可复用脚本文件
新建一个文本文档,粘贴以下内容并保存为 rename.ps1(编码选UTF-8无BOM):
# 修改前请务必备份!<br>
$targetDir = "C:\待处理"<br>
$newPrefix = "V2_"<br>
Get-ChildItem -Path $targetDir -File | ForEach-Object {<br>
$newName = $newPrefix + $_.Name<br>
Rename-Item -Path $_.FullName -NewName $newName -ErrorAction SilentlyContinue<br>
}
右键该.ps1文件 → “使用 PowerShell 运行”,或在PowerShell中执行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser(仅需运行一次),然后输入 .\rename.ps1。










