[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】求助这种批量重命名的批处理文件要怎么写呢?

本帖最后由 xuezhou24 于 2018-9-20 14:29 编辑

我想把同一个文件夹里的不同文件类型分别按照文件名顺序重命名,重命名的样式是“文字前缀+三位数序号”,文字前缀是相同的,但每种文件类型要分别从001开始排序,比如说想要“aaa001.png","aaa001.jpg","aaa002.png","aaa002.jpg","aaa003.png","aaa003.jpg"……这样的结果,请问这样的批处理文件应该怎么写呢,我试了好多次都没有成功,要么顺序不对,第一个文件变成最后一个了,要么有的文件类型好使,有的文件类型没反应,有时候运行bat文件的时候就只是闪一下,文件名却一点儿反应也没有,不知这种批处理文件到底应该怎么写才可以呢?谢谢大家了!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 2# xczxczxcz


    谢谢你~但是运行之后有这么两个问题。第一,运行之后会弹出cmd窗口,里面显示了每个文件重命名之后的名字,但新名字并没有按照改名前的文件名顺序排列,好像是随机的顺序;第二,我在按任意键继续之后,cmd窗口自动关掉了,但是文件名没有任何变化,还是和原来一样。请问这两个问题应该怎么解决呢?谢谢!

TOP

回复 4# xczxczxcz


    啊啊谢谢,但是排序不对的问题我还没想出更好的办法,我现在把你的代码里的按扩展名排序改成按文件名排序,然后把每种扩展名都各写一条命令,目前好像是可以得到我想要的效果了,不知有没有更好的办法,要是能更简洁一些就更好了,不过现在这样也可以用,真的谢谢你啊!

TOP

回复 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

TOP

回复 8# Batcher


    这个完全可以了,谢谢!!

TOP

返回列表