数码教程网
柔彩主题三 · 更轻盈的阅读体验

命令行批量改名文件,轻松搞定杂乱照片和文档

发布时间:2025-12-10 10:36:50 阅读:290 次

家里电脑里堆着成百上千张照片,名字全是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,但真正用起来也就几行代码的事。一旦学会,比鼠标点几十次快得多,而且不容易出错。下次面对一堆乱七八糟的文件名时,别急着一个一个改,打开命令行试试,几分钟就能收拾得整整齐齐。