批处理学习--文件批量改名

 有时我们硬盘中存在大理相同类型文件,如果需要对这类文件按照统一格式重新命名时,将会时一个非常繁锁的过程。

 此时如果借助批处理,那么您可以快速的完成此项任务。

 具休实现过程,可参照如下示例代码:(友情提示:在你本机测试些批处理前,请您再三确认您提供的路径及修改文件类型是正确的)

@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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值