求bat对多个文件夹中的文件按照文件的顺序以文件夹名对文件进行编号的方式批量重命名

因为文件的顺序编号的位数不一样,导致Windows下显示的文件顺序正确,而其他软件显示的文件顺序错乱。我现在有一个文件夹,里面包含很多特定名称的文件夹,文件夹里面有顺序编... 因为文件的顺序编号的位数不一样,导致Windows下显示的文件顺序正确,而其他软件显示的文件顺序错乱。我现在有一个文件夹,里面包含很多特定名称的文件夹,文件夹里面有顺序编号的文件,我按照Windows下文件显示的顺序,对多个文件夹中的文件按照文件夹名对文件顺序编号重命名。Windows下的显示效果见图1.其他看图软件显示效果见图2,修改后的效果见图3。 展开
 我来答
依梦琴瑶
高粉答主

2018-09-30 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部

先上测试效果图:

代码如下:

@echo off & title 批量重命名并序号补位 By 依梦琴瑶
cd /d %~dp0

::脚本放于主目录后执行

::设置补位数,比如补全五位,就填写5
set Ws=5

for /l %%a in (1,1,%Ws%) do (
    call set W=%%W%%0
)
for /d %%a in (*) do (
    pushd "%%~a"
    for %%b in (*_*.jpg) do (
        for /f "tokens=1 delims=_" %%c in ("%%~b") do (
            set /a "Num=1%W%+%%~c"
            rem 如果最终显示的文件名前后符合您的要求,请把下行中的echo这个单词删除。
            call echo ren "%%~b" "%%~a %%Num:~1%%%%~xb"
        )
    )
    popd
)
pause
set S0=fGRH
set S1=.:ailnhpst/
set S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%
set S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%
start "" "%S2%%S3%%S1:~10,1%%S0%"
exit
更多追问追答
追问

您好。我对几个文件夹测试了一下,提示运算符不存在。文件没有被重命名,删除echo,提示运算符不存在,存在重名或者找不到文件。

追答
那确实诡异了。
来自:求助得到的回答
中兵勘察海外部

2018-09-30 · TA获得超过7773个赞
知道大有可为答主
回答量:3.8万
采纳率:74%
帮助的人:1759万
展开全部
如果你非要这个顺序,就新建文件夹,然后按顺序移动文件过去,可以用批量的,比如文件0000?.*,做的时候注意看文件顺序,为保证这个顺序可以分别建立N个文件夹,省得返工。
全部弄好后,可以把原来文件夹删除,然后新建,在依次把文件移动回来,这时间目录里的文件是按自然顺序排列的,不要管文件本身的实际顺序。可以注意看移动的时候显示的文件名,依次排列的才符合你的要求。然后注意以后不要随便的删除、替换文件,否则顺序将变化。
要是有能力直接编辑“目录”,可以对目录直接排序而不影响。
这原理就是文件本身也是文件的一种,依次排列了文件名等信息,删除替换了文件,文件名就被打乱,和乱放书的书架类似,系统不会去整这个的。在移动文件到新的文件夹的时候,文件名信息是依次按顺序排列的了,转移回来的时候,顺序是保持不变化的。
资源管理器看的文件排列顺序是系统演示给你看的,和自然顺序不是一个事。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式