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

[文本处理] 求助:图片文件重命名的批处理

各位大佬请指教一下小弟。

我有很多做了很多相片,以前是从0.png,1.png,2.png,3.png。。。

我现在想重新改名从1开始

比如说
0.png+1改为1.png
1.png+1改为2.png
2.png+1改为3.png

图片名称都是固定的,就是将原文件名的基础上+1重新命名,但是不能打乱原有的图片循序,请问怎么写bat文件批量修改?

来个非常低效的
  1. @echo off
  2. for %%a in (0 1 2 3 4 5 6 7 8) do (
  3. set /a n=%%a+1
  4. for %%b in (*.png) do (
  5. echo "%%b"| findstr /e /rc:"%%a.png[ -#]" >nul&& set m=%%~nb
  6. if defined m (
  7. setlocal enabledelayedexpansion
  8. if "!m:~0,-1!" neq "" (
  9. rename "!m!.png" "!m:~0,-1!!n!.tmpdb_"
  10. ) else (
  11. rename "!m!.png" "!n!.tmpdb_"
  12. )
  13. endlocal
  14. set m=
  15. )
  16. )
  17. )
  18. setlocal enabledelayedexpansion
  19. for /l %%i in (9,10,9999) do (
  20. set /a l=%%i+1
  21. rename "%%i.png" "!l!.tmpdb_" 2>nul
  22. )
  23. endlocal
  24. rename "*.tmpdb_" "*.png"
  25. pause&exit/b
复制代码

TOP

本帖最后由 LJY4.0 于 2023-10-20 21:45 编辑
  1. @echo off
  2. set a = 0
  3. cd "%~dp0"
  4. :chuli
  5. set /a b = a+=1
  6. if exist %a%.png ren %a%.png %b%.png
  7. if exist %b%.png goto break
  8. set /a a+=1
  9. goto chuli
  10. :break
  11. echo end
  12. pause
复制代码
不知道对不对,最近学了C++,bat忘得差不多了,现在还觉得没有main函数好别扭
风格也C++化了
https://pc.woozooo.com/mydisk.php

TOP

回复 1# sluc


请参考Q-04把test.bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. REM 假设最大数字是999,最小数字是0
  5. for /l %%i in (999,-1,0) do (
  6.     if exist "%%i.png" (
  7.         set /a NewNum=%%i+1
  8.         ren "%%i.png" "!NewNum!.png"
  9.     )
  10. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

请备份好源文件,以免发生意外:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-d *.png') do (
  4.     set /a n=%%~ni+1
  5.     ren "%%i" "!n!.tem"
  6. )
  7. ren "*.tem" "*.png"
复制代码

TOP

返回列表