You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多子目录下批量重命名*-ABC-DE(7位数字).ext格式文件是否可行?

当然能实现!这种批量调整文件名的需求,用命令行工具就能轻松搞定,我给你分不同操作系统整理了具体方案:

方案一:Linux/macOS 环境(用 find + rename)

这个组合可以递归遍历所有子目录,精准匹配并批量重命名文件:

find /你的目标目录路径 -type f -name "*-ABC-DE???????.ext" -exec rename 's/(.*)-ABC-(DE\d{7})\.ext/$1-$2-ABC\.ext/' {} +

拆解一下各部分的作用:

  • /你的目标目录路径:替换成你要处理的根目录绝对路径
  • -type f:只处理文件,避免误改目录名
  • -name "*-ABC-DE???????.ext":匹配你指定的文件名格式,???????对应7位数字
  • 正则表达式 s/(.*)-ABC-(DE\d{7})\.ext/$1-$2-ABC\.ext/:
    1. 捕获-ABC-之前的所有内容到第一个分组($1)
    2. 捕获DE加7位数字的部分到第二个分组($2)
    3. 把文件名重组为$1-$2-ABC.ext,实现把ABC移到DE(7位数字)后面

提示:可以先加 -n 参数到 rename 命令里(比如 rename -n 's/.../'),预览重命名结果,确认没问题后再去掉 -n 执行实际修改。

方案二:Windows 环境(用 PowerShell)

PowerShell 自带的递归搜索和正则替换功能也能搞定这个需求:

Get-ChildItem -Path "C:\你的目标目录路径" -Recurse -File -Filter "*-ABC-DE???????.ext" | Rename-Item -NewName { $_.Name -replace '(.*)-ABC-(DE\d{7})\.ext', '$1-$2-ABC.ext' } -WhatIf

说明:

  • -Recurse:递归遍历所有子目录
  • -WhatIf:这是预览参数,执行后只会显示要修改的文件名,不会实际改动;确认结果正确后删掉这个参数,再执行一次就会完成重命名
  • 正则替换逻辑和 Linux/macOS 方案完全一致,确保文件名格式符合你的要求
额外注意事项
  • 备份优先:如果这些文件比较重要,建议先复制一份备份再执行重命名操作
  • 灵活调整正则:如果你的扩展名不是固定的 .ext,可以把正则里的 \.ext 改成 \.[^\.]+,这样就能匹配任意扩展名的文件

内容的提问来源于stack exchange,提问作者Fabio Brassini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:05:30