可通过PowerShell、Excel VBA、CMD命令或Bulk Rename Utility四种方法批量重命名Excel文件:PowerShell支持字符串替换与序号命名;VBA可依单元格内容驱动重命名;CMD适用于基础替换与前缀添加;Bulk Rename Utility提供图形化预览与正则匹配。

如果您需要批量修改多个Excel工作簿的文件名,但逐一手动重命名效率低下且易出错,则可通过系统命令、PowerShell脚本或Excel VBA结合文件系统操作实现自动化处理。以下是几种可行的操作方法:
一、使用Windows PowerShell批量重命名
PowerShell具备强大的文件系统操作能力,可基于规则(如替换字符串、添加前缀、按序号重命名)快速处理同一文件夹下的所有Excel文件。该方法无需安装额外软件,直接调用系统内置功能。
1、在Excel文件所在文件夹空白处按住Shift键,同时右键单击,选择“在此处打开 PowerShell 窗口”。
2、输入以下命令,将所有.xlsx文件名中的“旧词”替换为“新词”:
Get-ChildItem *.xlsx | Rename-Item -NewName { $_.Name -replace '旧词','新词' }
3、若需按数字序号重命名(如“报告1.xlsx”“报告2.xlsx”),执行:
$i=1; Get-ChildItem *.xlsx | ForEach-Object { Rename-Item $_.FullName "报告$i.xlsx"; $i++ }
二、利用Excel VBA调用FSO对象批量修改
此方法通过Excel内部VBA代码控制文件系统对象(FileSystemObject),适用于已打开某个Excel文件并希望以其Sheet数据为依据驱动重命名逻辑的场景,例如根据A列内容重命名对应文件。
1、按Alt + F11打开VBA编辑器,插入新模块。
2、粘贴以下代码(示例:将当前目录下所有.xlsx文件按Sheet1的A1单元格值重命名):
Sub BatchRenameByCell()
Dim fso As Object, file As Object, folderPath As String
folderPath = ThisWorkbook.Path & "\"
Set fso = CreateObject("Scripting.FileSystemObject")
For Each file In fso.GetFolder(folderPath).Files
If LCase(fso.GetExtensionName(file.Name)) = "xlsx" And file.Name ThisWorkbook.Name Then
On Error Resume Next
newName = ThisWorkbook.Sheets(1).Range("A1").Value & ".xlsx"
file.Move folderPath & newName
On Error GoTo 0
End If
Next
End Sub
3、确保目标Excel文件未被其他程序占用,运行宏。
三、借助CMD命令行配合FOR循环批量处理
CMD虽功能较PowerShell有限,但在基础批量替换场景中仍稳定可靠,适合对命令行操作较熟悉的用户,尤其适用于Windows Server或受限环境。
1、打开命令提示符,进入目标文件夹:
cd /d D:\ExcelFiles
2、执行批量替换(将所有文件名含“_v1”的改为“_v2”):
for %f in (*_v1.xlsx) do @ren "%f" "%f:_v1=_v2"
3、如需添加统一前缀(如“2024_”),使用:
for %f in (*.xlsx) do @ren "%f" "2024_%f"
四、使用第三方工具Bulk Rename Utility辅助操作
Bulk Rename Utility是轻量级免安装工具,提供图形化界面与正则表达式支持,可预览重命名结果,降低误操作风险,特别适合非编程用户进行复杂模式匹配与大小写转换。
1、下载并解压Bulk Rename Utility,以管理员身份运行。
2、点击“Add”按钮,选择目标文件夹中的全部.xlsx文件。
3、在“Replace”区域填写:
Find: 原始关键词
Replace: 新关键词
Check “Match case” and “Whole word only” as needed
4、勾选“Preview”确认无误后,点击“Rename”执行。










