Board logo

标题: [文本处理] 求助:图片文件重命名的批处理 [打印本页]

作者: sluc    时间: 2023-10-20 12:15     标题: 求助:图片文件重命名的批处理

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

我有很多做了很多相片,以前是从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文件批量修改?
作者: qixiaobin0715    时间: 2023-10-20 12:38

请备份好源文件,以免发生意外:
  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"
复制代码

作者: Batcher    时间: 2023-10-20 13:12

回复 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. )
复制代码

作者: LJY4.0    时间: 2023-10-20 21:42

本帖最后由 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++化了
作者: Five66    时间: 2023-10-21 05:02

来个非常低效的
  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
复制代码





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