文件批量重命名bat求编辑
我有一批文件,后缀名可能是很多,不一定是pdf的,但是有一个共同就是文件抬头都是数字,如图,只是部分,数字到了100多现在我想在中间插入个抬头为33的文件,先得将原文件夹...
我有一批文件,后缀名可能是很多,不一定是pdf的,但是有一个共同就是 文件抬头都是数字,如图,只是部分,数字到了100多 现在我想在中间插入个抬头为33 的文件,先得将原文件夹中33及以后的文件增1然后才能插入(以免重复),如果一个一个改太麻烦了,麻烦高人帮编一个 bat命令
for /l %%i in (120,-1,33) do (
set /a e=%%i+1
ren %%i*.* %e*.*)
:exit
echo 更改成功,按任意键退出
pause >nul
我自己写的代码 不过好像不能用 展开
for /l %%i in (120,-1,33) do (
set /a e=%%i+1
ren %%i*.* %e*.*)
:exit
echo 更改成功,按任意键退出
pause >nul
我自己写的代码 不过好像不能用 展开
2个回答
展开全部
按照文件名前面数字编号不足两位的补一个0 大于等于33个编号加1,前两位有不是数字的(本批处理除外)退出写的代码,批处理放要处理的文件夹内:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir/b/a-d')do (
if not "%%i"=="%~nx0" (
set nn=%%i
set n1=!nn:~,2!
echo.!nn:~2,1!|findstr "[0-9]"&&set n1=!nn:~,3!
echo.!n1!|findstr "^[0-9]*$"||goto note
call set n2=%%nn:!n1!=%%
if not "!n1:~,1!"=="0" (
if !n1! geq 33 set/a n1=+1
ren "%%i" "!n1!!n2!")
)
)
echo 处理完毕!即将退出
ping /n 3 127.1>nul
exit
:note
echo.
echo 本文件夹内存在不是前面是编号的文件,请核实后重新运行!
ping /n 5 127.1>nul
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir/b/a-d')do (
if not "%%i"=="%~nx0" (
set nn=%%i
set n1=!nn:~,2!
echo.!nn:~2,1!|findstr "[0-9]"&&set n1=!nn:~,3!
echo.!n1!|findstr "^[0-9]*$"||goto note
call set n2=%%nn:!n1!=%%
if not "!n1:~,1!"=="0" (
if !n1! geq 33 set/a n1=+1
ren "%%i" "!n1!!n2!")
)
)
echo 处理完毕!即将退出
ping /n 3 127.1>nul
exit
:note
echo.
echo 本文件夹内存在不是前面是编号的文件,请核实后重新运行!
ping /n 5 127.1>nul
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询