Board logo

标题: [文件操作] BAT脚本如何批量重命名文件为序号? [打印本页]

作者: a6236130    时间: 2019-6-2 23:24     标题: 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.统一给文件补齐位数   这两种思路哪种弊端小?
作者: zaqmlp    时间: 2019-6-3 00:07

你这样,直接补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
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2