家里电脑里堆着成百上千张照片,名字全是IMG_001、DSC_002这种系统自动生成的,想找去年夏天去云南拍的那组根本无从下手。还有工作文档,每次保存都叫“新建文本文档(1)”、“新建文本文档(2)”,时间一长自己都懵了。其实不用一个个手动重命名,用命令行几秒钟就能全部搞定。
Windows 上用 ren 命令批量处理
打开文件夹,按住 Shift 键再右击空白处,选择“在此处打开 PowerShell 窗口”或“打开命令提示符窗口”。假设你有一堆照片想改成 trip_001.jpg、trip_002.jpg 这样的格式。
先把这些文件按名称排序,确保顺序是你想要的。然后执行下面这行命令:
dir *.jpg | %{$i=1} {ren $_.Name ("trip_{0:d3}.jpg" -f $i++)}
这行代码的意思是:列出所有 .jpg 文件,然后逐个重命名为 trip_001.jpg、trip_002.jpg 依此类推。如果你要处理的是 PNG 图片,把 *.jpg 换成 *.png 就行。
Mac 或 Linux 用户用 rename 或 shell 脚本
在 macOS 的终端里,可以使用 for 循环配合计数器来批量改名。进入目标文件夹后运行:
i=1; for file in *.pdf; do mv "$file" "report_$i.pdf"; i=$((i+1)); done
这段脚本会把当前目录下所有 PDF 文件重命名为 report_1.pdf、report_2.pdf……适合整理月度报表或者发票扫描件这类文件。
去掉空格和特殊字符,让文件更规范
有些文件名带空格或括号,同步到网盘或传给同事时容易出问题。可以用命令一次性替换掉这些符号。
比如在 Linux 或 macOS 下,把空格替换成下划线:
for file in * *; do mv "$file" "${file// /_}"; done
这个 ${file// /_} 是 shell 的字符串替换语法,意思是把变量 file 中的所有空格替换成下划线。
加前缀统一归类
手头有几十个合同文件,原本名字五花八门,现在想统一加上“2024_”前缀方便归档。
在 PowerShell 里这样写:
Get-ChildItem *.docx | ForEach-Object {$i=1} {Rename-Item $_ "2024_$_"}
运行后每个 Word 文档都会变成 2024_原文件名.docx。如果只想处理特定类型的,比如只改“合同”相关的,可以先筛选:
Get-ChildItem *合同*.pdf | Rename-Item -NewName { $_.Name -replace '合同','agreement' }
这样就把所有包含“合同”的 PDF 文件中的“合同”两字替换成“agreement”,中英文混用的情况也能快速调整。
命令行看着有点 intimidating,但真正用起来也就几行代码的事。一旦学会,比鼠标点几十次快得多,而且不容易出错。下次面对一堆乱七八糟的文件名时,别急着一个一个改,打开命令行试试,几分钟就能收拾得整整齐齐。