有时我们硬盘中存在大理相同类型文件,如果需要对这类文件按照统一格式重新命名时,将会时一个非常繁锁的过程。
此时如果借助批处理,那么您可以快速的完成此项任务。
具休实现过程,可参照如下示例代码:(友情提示:在你本机测试些批处理前,请您再三确认您提供的路径及修改文件类型是正确的)
@echo off
rem --开启系统延迟变量
setlocal enabledelayedexpansion
rem --得到你的文件夹的位置 危险慎重输入路径
set /p "dc=请输入你要操作的文件夹的完整盘符及路径: "
rem set dc=d:\test
rem 等待用户确认
echo.
echo =====================================================
echo 警告!此操作将导致指定目录及子目录所有匹配文件
echo 批量改名!
echo.
echo 如果文件路径输入有误请键入"N"键退出程序,重新运行
echo 此批处理文件,输入正确目录路径!
echo.
echo 如果文件路径输入正确请直接键入"Y",将执行批量改名!
echo =====================================================
echo.
set /p "chooseConfirm=请你再次确认目录是否正确【Y/N】:"
rem 逻辑分支判断(/i参数表示勿略大小写)
if /i '%chooseConfirm%'=='' exit
if /i '%chooseConfirm%' EQU 'N' exit
if /i '%chooseConfirm%' EQU 'Y' goto _batchChangeName
:_batchChangeName
rem --用FOR循环得到指定位置下(包括子文件夹下)的所有jpg类型的文件
for /r %dc% %%i in (*.jpg) do (
rem --截取文件名称
set "filename=%%~nxi"
rem --用FOR循环得到以"."为分隔符的文件主名的第一列和剩余列
for /f "tokens=1,* delims=." %%j in ("!filename!") do (
rem --截取文件名
rem 从倒数第18个字符开始,截取18个字符:(根据使用场景自行调整截取字符串位数)
set changeName=%%j
set nange=!changeName:~-18,18!
rem 最后一步完成改名
ren "%%i" "!nange!.%%k"
)
)
echo.&echo 指定文件夹包括子文件夹下的文件更名完成!
endlocal
pause>nul
@echo on