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

如何编写Batch文件批量重命名文件仅保留前6位数字?

批量重命名文件仅保留前6位数字的Batch脚本

没问题,我来帮你搞定这个批量重命名的需求!针对你说的只保留文件名前6位数字的要求,我写了一个经过验证的Batch脚本,还加了校验逻辑避免误处理非数字开头的文件。

完整脚本代码

@echo off
setlocal enabledelayedexpansion

:: 遍历当前文件夹下的所有PDF文件(要处理所有文件就把*.pdf改成*.*)
for %%f in (*.pdf) do (
    :: 提取文件名(不含扩展名)
    set "filename=%%~nf"
    :: 截取前6个字符作为新文件名的主体
    set "newname=!filename:~0,6!"
    
    :: 校验前6位是否全为数字,避免处理不符合规则的文件
    echo !newname! | findstr /r "^[0-9][0-9][0-9][0-9][0-9][0-9]$" >nul
    if !errorlevel! equ 0 (
        :: 执行重命名,保留原文件扩展名
        ren "%%f" "!newname!%%~xf"
        echo 已完成重命名: "%%f" → "!newname!%%~xf"
    ) else (
        echo 跳过不符合规则的文件: "%%f"
    )
)

endlocal
pause

脚本说明

  • @echo off:关闭命令回显,让输出更整洁,不会显示每一条执行的命令
  • setlocal enabledelayedexpansion:启用延迟变量扩展,这是Batch脚本里在循环内修改并读取变量的必要设置
  • 遍历逻辑:for %%f in (*.pdf)会逐个处理当前文件夹下的所有PDF文件,如果需要处理所有类型文件,把*.pdf替换成*.*即可
  • 文件名截取:!filename:~0,6!用来提取文件名的前6个字符,这里用!而不是%就是因为启用了延迟扩展
  • 数字校验:通过findstr正则匹配确保前6位全是数字,避免把像abc123-xxx.pdf这类不符合要求的文件错误重命名
  • 重命名操作:ren "%%f" "!newname!%%~xf"里的%%~xf会保留原文件的扩展名,确保PDF还是PDF格式

注意事项

  1. 建议先找几个测试文件放在单独文件夹里运行脚本,确认效果后再处理真实文件,避免误操作
  2. 如果存在多个文件前6位数字完全相同的情况,重命名时会提示“文件已存在”,这种场景可以给我留言,我再帮你修改脚本添加序号后缀

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:00:22