阿萌的程序小屋

萌物控重度患者与您一起畅游技术与梦想的世界

批处理bat应用之批量为文件夹下的文件增加文件名后缀

前几天发表了一篇“批处理bat应用之批量为文件夹下的文件增加文件名前缀”的文章中提到,阿萌要在最近写一篇更改文件名后缀的文章,当然,这里的后缀指的不是扩展名,而是文件名,为了区分后缀和后缀名的语义上的区别,下文直接用扩展名这个词,接下来看看是怎么修改的吧。

先来看看添加前缀的代码:


@echo off  
title 批量替换文件名前缀   
echo.  
echo 本批处理可批量替换本文件所在文件夹下指定文件类型的文件的文件名前缀。  
echo.  
echo.&set /p strtype= 请输入要添加前缀的文件类型(例:jpg):  
echo.&set /p strname= 请输入要添加的前缀字符串(无需更改请直接回车):
setlocal enabledelayedexpansion  
for /f "delims=" %%i in ('dir /a /b *.%strtype%') do (  
ren "%%~i" "%strname%%%i")  
echo.  
echo 修改完毕!  
echo.  
pause  

 

其实我们要修改成添加后缀的代码,只要修改for命令后面do里面的内容就可以了。

因为找来找去都没有找到什么快捷的办法直接重命名,最后只好通过替换字符串的方式来重命名了。

首先我们新建一个变量strnname存储整个文件命(注:包括文件扩展名)。

然后直接通过替换扩展名为我们所定义的后缀,再添加上原扩展名,最后通过ren重命名即可。

添加后缀的代码:


@echo off  
title 批量替换文件名后缀   
echo.  
echo 本批处理可批量替换本文件所在文件夹下指定文件类型的文件的文件名后缀。  
echo.  
echo.&set /p strtype= 请输入要添加后缀的文件类型(例:jpg):  
echo.&set /p strname= 请输入要添加的后缀字符串(无需更改请直接回车):
set strtype=.%strtype%
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /a /b *%strtype%') do (
set strnname=%%i
set strnname=!strnname:%strtype%=%strname%!
set strnname=!strnname!%strtype%
ren "%%i" "!strnname!"
)
echo.  
echo 修改完毕!  
echo. 
pause

 

观察仔细的朋友可能会发觉我多了一个set strtype=.%strtype%的语句,其实是为了方便替换,把扩展名的点直接纳入替换值里而已。

如有朋友感觉我的博文或代码有问题,愿能给予我宝贵的意见!Thanks

另注:转载请随意,但请带上本文地址,万分感谢。

http://www.wangmengyu.cn/?p=491

这就是真的真的是传说中的公告牌的说~~
暂且努力发展中~~

性别:男  年龄:20岁
现居:江苏  南京  浦口区
标语:萌即是一切