本文目录导读:

当然可以!批量改名是命令行脚本和编程语言非常擅长的任务,我为你提供几种实用脚本方案,覆盖 Windows(cmd/PowerShell)和 Linux/macOS(bash)环境。
基础场景:通用逻辑
任何批量改名脚本的核心逻辑都是:
- 模式匹配:找到你想要改名的文件(所有
.jpg文件,或者名字包含 “2024” 的文件)。 - 名称转换:定义如何修改旧文件名(添加前缀、替换文字、改变扩展名、按顺序编号)。
- 执行改名:运行脚本。
⚠️ 重要警告:批量改名有风险。一定要先在测试文件夹或使用 -WhatIf(PowerShell)或 echo(bash)预览结果,确认无误后再执行。
Windows 脚本
方法 A:使用 PowerShell(最推荐,功能最强)
PowerShell 是现代 Windows 系统自带的脚本语言。
场景 1:在文件名中添加统一的日期前缀
想要把当前文件夹中所有 .txt 文件的名字前都加上 “Report2025”。
Get-ChildItem -Path ".\*.txt" | Rename-Item -NewName { "Report_2025_" + $_.Name }
Get-ChildItem获取文件列表,Rename-Item负责改名。
场景 2:替换文件名中的特定文字 想要把所有文件名中的 “old_project” 替换为 “new_project”。
Get-ChildItem -Path "*" -File | Where-Object {$_.Name -like "*old_project*"} |
Rename-Item -NewName { $_.Name -replace "old_project", "new_project" }
- 这是一个非常强大的模式,可以用正则表达式实现复杂替换。
场景 3:批量添加序号(照片01.jpg, 照片02.jpg)
想要给当前文件夹中所有 .jpg 文件按顺序编号。
$i = 1
Get-ChildItem -Path "*.jpg" | Sort-Object Name | ForEach-Object {
$newName = "照片{0:D2}.jpg" -f $i
Rename-Item -Path $_.FullName -NewName $newName
$i++
}
{0:D2}是格式化字符串,D2表示两位数,编号从 01, 02... 到 99。
预览命令(安全第一)
只需在 Rename-Item 后加上 -WhatIf,脚本就会只显示将要改的名字,而不真正执行。
Rename-Item -NewName { "Report_2025_" + $_.Name } -WhatIf
方法 B:使用命令提示符 (cmd)
历史较为悠久,语法较原始,不推荐处理复杂的文件名(可能包含空格)。
# 为所有txt文件添加前缀
setlocal enabledelayedexpansion
for %%f in (*.txt) do (
set "filename=%%f"
ren "!filename!" "prefix_!filename!"
)
Linux / macOS 脚本
使用 Bash 和 rename 命令(最推荐)
rename 命令有两种常用版本:Perl 版本 (最常见) 和 util-linux 版本。Perl 版本功能极其强大,如果你的系统没有,可以安装:
- Ubuntu/Debian:
sudo apt install rename - macOS (使用 Homebrew):
brew install rename
场景 1:将所有 .jpeg 扩展名改为 .jpg
rename 's/\.jpeg$/.jpg/' *.jpeg
场景 2:将文件名中的空格替换为下划线
rename 's/ /\_/g' *
场景 3:将所有文件名改为小写
rename 'y/A-Z/a-z/' *
场景 4:在文件名前面添加日期前缀
for file in *.txt; do mv "$file" "Report_2025_$file"; done
场景 5:批量添加序号
i=1; for file in *.jpg; do mv "$file" "$(printf "照片_%02d.jpg" $i)"; ((i++)); done
%02d表示两位数的序号。
预览命令(安全第一)
在 rename 命令中加上 -n 参数,在 mv 命令前加上 echo。
# 预览 rename 操作 rename -n 's/ /_/g' * # 预览 mv 操作 for file in *.txt; do echo mv "$file" "Report_2025_$file"; done
免安装的图形化工具(适合新手)
如果你觉得脚本有点复杂,这些免费工具也能批量改名:
- Advanced Renamer (Windows): 功能非常强大,几乎能处理所有改名需求,免费使用。
- PowerRename (Windows): 微软官方出品,集成在 PowerToys 工具集中,简洁好用。
- A Better Finder Rename (macOS): Mac 平台的首选,功能全面。
- Renamer (macOS): 另一个不错的 Mac 工具。
总结建议
| 你的需求 | 推荐方案 |
|---|---|
| 简单改名,不想写代码 | PowerToys PowerRename (Windows) 或 Advanced Renamer |
| 日常办公,自动化处理 | PowerShell 脚本 (Windows) 或 rename 命令 (Linux/macOS) |
| 需要复杂正则替换 | rename (Perl版本) 或 PowerShell -replace |
| 需要按 EXIF 日期等改照片名 | Advanced Renamer 或编写 Python 脚本 (使用 exiftool) |
最核心的忠告:第一次使用时,务必先预览!先用小文件夹测试,确认效果满意后,再大规模应用。
如果你有具体的改名需求(把 IMG_1234.jpg 改为 2025-01-15_北京旅行.jpg,或者把 [Artist]-Song.mp3 改为 Song.mp3),欢迎提供具体例子,我可以为你精确写出对应的脚本。