[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] BAT脚本如何批量重命名文件为序号?

  1. @echo off
  2.   
  3. set Ext=*.jpg,*.tif
  4.   
  5. for /r /d %%a in (*) do (
  6.     pushd "%%~a"
  7.     call set Num=1000
  8.     for /f "delims=" %%i in ('dir /a-d/b %Ext%') do (
  9.         call set /a Num+=1
  10.         call ren "%%~i" "%%Num:~1%%%%~xi"
  11.     )
  12.     popd
  13. )
  14. pause
复制代码
我的数据是1.jpg  2.jpg 3.jpg 4.jpg 5.jpg 6.jpg 7.jpg 8.jpg 9.jpg 10.jpg 11.jpg这样的形式,若使用上面的代码 则会造成1.jpg=0001.jpg  而10.jpg=0002.jpg  这样的情况。需要怎么改?
是否可以以两种方式达到效果,1.判断文件数值的大小来进行重命名  2.统一给文件补齐位数   这两种思路哪种弊端小?

你这样,直接补0就是了,如果文件名有缺失/不连续的数字才有必要按大小排序
  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. cd /d "%~dp0"
  6. for /f "delims=" %%a in ('dir /a-d/b *.jpg *.tif') do (
  7.     set "f=%%a"
  8.     set "newname=0000%%~na"
  9.     setlocal enabledelayedexpansion
  10.     echo;"!f!" --^> "!newname:~-3!%%~xa"
  11.     ren "!f!" "!newname:~-3!%%~xa"
  12.     endlocal
  13. )
  14. echo;%info%
  15. pause
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

返回列表