如何编写bat脚本批量重命名目录树图片 文件名开头加JP与当前日期
递归批量重命名照片的批处理修复方案
你找到的无效代码存在4个核心问题:
- 硬编码仅匹配
.txt后缀文件,完全扫不到png、jpg类的照片文件 - 引号位置完全错位,
if判断和ren重命名命令存在语法错误,无法正常执行 - 写死了固定日期值
20220623,无法自动获取执行当天的日期 - 重命名命令里多余的
*通配符会导致匹配文件逻辑混乱,容易误改其他文件
可用的完整批处理代码
把以下内容保存为.bat后缀的文件,放到需要处理的照片根目录下双击运行即可,会自动遍历当前目录及所有子文件夹的图片,在文件名开头添加Jp-YYYYMMDD-前缀:
@echo off setlocal enabledelayedexpansion :: 提取系统当前日期,格式为YYYYMMDD set "current_date=!date:~0,4!!date:~5,2!!date:~8,2!" :: 自定义需要处理的图片后缀,多个后缀用空格分隔 for /r %%f in (*.png *.jpg *.jpeg *.bmp *.webp) do ( :: 跳过批处理脚本自身,避免误改脚本文件 if "%%~nxf" neq "%~nx0" ( :: 跳过已经添加过对应前缀的文件,防止重复运行时重复加前缀 echo "%%~nxf" | findstr /b /c:"Jp-!current_date!-" >nul if errorlevel 1 ( ren "%%f" "Jp-!current_date!-%%~nxf" ) ) ) pause
使用说明
- 如果需要增减支持的图片格式,直接修改
for /r行括号内的通配符项即可 - 脚本自带重复执行防护,已经完成重命名的文件不会被重复修改
- 如果运行后获取的日期格式不对,检查Windows系统的短日期格式是否为
YYYY-MM-DD或YYYY/MM/DD即可,调整后重新运行就正常 - 重命名效果和要求完全一致:比如原文件
star light.png在2024年5月20日运行脚本,会被重命名为Jp-20240520-star light.png
内容的提问来源于stack exchange,提问作者Danel Lau
相关产品推荐
相关产品推荐

