标题: [文件操作] 【已解决】求助这种批量重命名的批处理文件要怎么写呢? [打印本页]
作者: xuezhou24 时间: 2018-9-19 16:24 标题: 【已解决】求助这种批量重命名的批处理文件要怎么写呢?
本帖最后由 xuezhou24 于 2018-9-20 14:29 编辑
我想把同一个文件夹里的不同文件类型分别按照文件名顺序重命名,重命名的样式是“文字前缀+三位数序号”,文字前缀是相同的,但每种文件类型要分别从001开始排序,比如说想要“aaa001.png","aaa001.jpg","aaa002.png","aaa002.jpg","aaa003.png","aaa003.jpg"……这样的结果,请问这样的批处理文件应该怎么写呢,我试了好多次都没有成功,要么顺序不对,第一个文件变成最后一个了,要么有的文件类型好使,有的文件类型没反应,有时候运行bat文件的时候就只是闪一下,文件名却一点儿反应也没有,不知这种批处理文件到底应该怎么写才可以呢?谢谢大家了!
作者: xczxczxcz 时间: 2018-9-19 17:32
本帖最后由 xczxczxcz 于 2018-9-19 17:58 编辑
@echo off & setlocal EnableDelayedExpansion
for /f "delims=" %%a in ('dir/b/oe "%~dp0*.*"') do (
if not defined %%~xa (set /a n=1001 & set "%%~xa=#") else set /a n+=1
echo 正式操作删除这些红字ren "%%a" aaa!n:~-3!%%~xa
)
pause & exit
作者: xuezhou24 时间: 2018-9-19 17:46
回复 2# xczxczxcz
谢谢你~但是运行之后有这么两个问题。第一,运行之后会弹出cmd窗口,里面显示了每个文件重命名之后的名字,但新名字并没有按照改名前的文件名顺序排列,好像是随机的顺序;第二,我在按任意键继续之后,cmd窗口自动关掉了,但是文件名没有任何变化,还是和原来一样。请问这两个问题应该怎么解决呢?谢谢!
作者: xczxczxcz 时间: 2018-9-19 17:55
你不是自己写过了许多么,那应该看得明白,第4行去掉前面4个字不就出结果了。备份再试。
作者: xuezhou24 时间: 2018-9-19 19:58
回复 4# xczxczxcz
啊啊谢谢,但是排序不对的问题我还没想出更好的办法,我现在把你的代码里的按扩展名排序改成按文件名排序,然后把每种扩展名都各写一条命令,目前好像是可以得到我想要的效果了,不知有没有更好的办法,要是能更简洁一些就更好了,不过现在这样也可以用,真的谢谢你啊!
作者: Batcher 时间: 2018-9-19 23:29
回复 5# xuezhou24
把你修改之后的代码发出来看看是否可以优化
作者: xuezhou24 时间: 2018-9-20 13:37
回复 6# Batcher
好的,我现在是这么做的,要是可以优化就更好了,不知是否有办法呢
@echo off & setlocal EnableDelayedExpansion
for /f "delims=" %%a in ('dir/b "%~dp0*.jpg"') do (
if not defined %%~xa (set /a n=1001 & set "%%~xa=#") else set /a n+=1
echo ren "%%a"aaa!n:~-3!%%~xa
)
↑ 我把每个扩展名都按上面写一遍
pause & exit
作者: Batcher 时间: 2018-9-20 14:12
回复 7# xuezhou24 - @echo off
- setlocal EnableDelayedExpansion
- for %%i in (jpg png) do (
- set %%i=1000
- for /f "delims=" %%a in ('dir /b *.%%i') do (
- set /a %%i+=1
- set n=!%%i!
- ren "%%a" "aaa!n:~-3!.%%i"
- )
- )
复制代码
把不同的扩展名放到一个for循环里面试试
作者: xuezhou24 时间: 2018-9-20 14:28
回复 8# Batcher
这个完全可以了,谢谢!!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |