截取当前文件夹图片名称后11位作为新名称
以下是一个简单高效的 BAT 脚本,用于截取当前文件夹图片名称后11位作为新名称:
如果需要支持更多图片格式,可以在set "image_exts=..."这一行中添加对应的扩展名(用空格分隔)。
@echo off
setlocal enabledelayedexpansion
:: 配置参数
set "image_exts=jpg jpeg png gif bmp webp tif tiff ico"
set "keep=11" :: 指定截取后11位
:: 标题信息
echo ==============================================
echo 强制截取图片名称后%keep%位作为新名称
echo ==============================================
echo 说明:无论原文件名长度,均截取最后%keep%位
echo ==============================================
echo.
:: 计数器初始化
set "total=0"
set "renamed=0"
:: 遍历处理图片文件
for %%e in (%image_exts%) do (
if exist "*.%%e" (
for %%f in (*.%%e) do (
set /a total+=1
set "old_name=%%f"
:: 直接截取后6位(无需计算长度)
set "new_name=!old_name:~-%keep%!"
:: 仅处理需要重命名的文件
if "!old_name!" neq "!new_name!" (
:: 处理重名
if exist "!new_name!" (
set "ext=%%~xf"
set "base=!new_name:%ext%=!"
set "num=1"
:duplicate_check
if exist "!base!_!num!!ext!" set /a num+=1 & goto duplicate_check
set "new_name=!base!_!num!!ext!"
)
:: 执行重命名
ren "%%f" "!new_name!" && (
echo [!total!] 已重命名:!old_name! → !new_name!
set /a renamed+=1
) || (
echo [!total!] 重命名失败:!old_name!
)
) else (
echo [!total!] 无需修改:!old_name!
)
)
)
)
:: 统计结果
echo.
echo ==============================================
echo 处理完成!
echo 总文件数:%total%
echo 成功重命名:%renamed%
echo ==============================================
pause
endlocal
本文来自博客园,作者:꧁༺星星的轨迹方程式༻꧂,转载请注明原文链接:https://www.cnblogs.com/SuSVIP/p/18998942