标题: [文本处理] 求助:图片文件重命名的批处理 [打印本页]
作者: 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
请备份好源文件,以免发生意外:- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /a-d *.png') do (
- set /a n=%%~ni+1
- ren "%%i" "!n!.tem"
- )
- ren "*.tem" "*.png"
复制代码
作者: Batcher 时间: 2023-10-20 13:12
回复 1# sluc
请参考Q-04把test.bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA- @echo off
- cd /d "%~dp0"
- setlocal enabledelayedexpansion
- REM 假设最大数字是999,最小数字是0
- for /l %%i in (999,-1,0) do (
- if exist "%%i.png" (
- set /a NewNum=%%i+1
- ren "%%i.png" "!NewNum!.png"
- )
- )
复制代码
作者: LJY4.0 时间: 2023-10-20 21:42
本帖最后由 LJY4.0 于 2023-10-20 21:45 编辑
- @echo off
- set a = 0
- cd "%~dp0"
- :chuli
- set /a b = a+=1
- if exist %a%.png ren %a%.png %b%.png
- if exist %b%.png goto break
- set /a a+=1
- goto chuli
- :break
- echo end
- pause
复制代码
不知道对不对,最近学了C++,bat忘得差不多了,现在还觉得没有main函数好别扭
风格也C++化了
作者: Five66 时间: 2023-10-21 05:02
来个非常低效的- @echo off
-
- for %%a in (0 1 2 3 4 5 6 7 8) do (
- set /a n=%%a+1
- for %%b in (*.png) do (
- echo "%%b"| findstr /e /rc:"%%a.png[ -#]" >nul&& set m=%%~nb
- if defined m (
- setlocal enabledelayedexpansion
- if "!m:~0,-1!" neq "" (
- rename "!m!.png" "!m:~0,-1!!n!.tmpdb_"
- ) else (
- rename "!m!.png" "!n!.tmpdb_"
- )
- endlocal
- set m=
- )
- )
- )
-
- setlocal enabledelayedexpansion
- for /l %%i in (9,10,9999) do (
- set /a l=%%i+1
- rename "%%i.png" "!l!.tmpdb_" 2>nul
- )
- endlocal
-
- rename "*.tmpdb_" "*.png"
- pause&exit/b
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |