找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22220|回复: 1

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

[复制链接]
发表于 2019-6-2 23:24:10 | 显示全部楼层 |阅读模式
  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.统一给文件补齐位数   这两种思路哪种弊端小?
发表于 2019-6-3 00:07:00 | 显示全部楼层
你这样,直接补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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 03:42 , Processed in 0.014939 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表