批处理 批量修改文件夹名称

内容都写在图中

第1个回答  2018-03-19
@echo off&setlocal enabledelayedexpansion
set /a n=1
for /f "delims=" %%a in ('dir /ad /b /on') do (
cd %%a
set start=!n!
for /f "delims=" %%b in ('dir /a-d-h /b ') do set /a n+=1
cd ..
set /a end=n-1
ren "%%~a" "!start!-!end!"
}
pause

追问

代码不行,打开闪退

追答@echo off&setlocal enabledelayedexpansion
set /a n=1
for /f "delims=" %%a in ('dir /ad /b /on') do (
cd %%a
set start=!n!
set end=!n!
for /f "delims=" %%b in ('dir /a-d-h /b ') do set /a n+=1
cd ..
if !n! gtr !start! set /a end=n-1
ren "%%~a" "!start!-!end!"
)
pause

那个)打开 }了,改过来了

本回答被提问者采纳
第2个回答  2018-03-19
不好意思,最近有点忙,都忘了您这个问题了。
有几个问题需要了解一下,文件夹1,2,3是纯数字的吗?还是随机文字?如果是纯数字编号,那么就是从1开始顺序重命名对吗?不会出现01,001这类编号对不?追问

文件夹不定的,可能有中文和数字组合,我先把他们按一定顺序排好,然后可以用dir /on

追答

那个albumin写的代码符合您的要求了,我就不写了。

第3个回答  2019-08-14
第4个回答  2018-03-19
稍等几分钟。追问

好的没问题

追答

你看是这个意思吧

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir/ad/b/on 2018*') do (
for /f "tokens=*" %%j in ('dir/b/on %%i\*.jpg') do (
set /a n+=1
move %%i\%%j %%i\!n!.jpg))

追问

不是这个意思,你的代码怎么有jpg? 我要的代码是修改文件夹名字

追答

前面回答另一个问题有点类似,在那个基础上简单改的。
我理解错了,好像楼下那个应该是对的,先不改了,如果需要我再改的话再追问吧。

第5个回答  2018-03-19
可以帮你写个程序追问

写个bat代码给我

相似回答