求批量改名成加下划线文件名的批处理
将如下doc或docx文件名(“数字文件名”或“数字空格文件名”)改为“数字下划线文件名”,并将同名数字.mp3文件名改为相同的“数字下划线文件名”.mp3如:20120...
将如下doc或docx文件名(“数字文件名”或“数字空格文件名”)改为“数字下划线文件名”,并将同名数字.mp3文件名改为相同的“数字下划线文件名”.mp3
如:
20120112 Underground Nukes Leave Traceable Uplift.doc
20120112.mp3
20130103Bonobos Share with Strangers First.docx
20130104.mp3
----------------------------------------------------------
改为:
20120112_Underground Nukes Leave Traceable Uplift.doc
20120112_Underground Nukes Leave Traceable Uplift.mp3
20130103_Bonobos Share with Strangers First.docx
20130103_Bonobos Share with Strangers First.mp3
还有就是,将文件名在前数字在后的docx文件名改为“数字_文件名“,并将前面带有字母下划线的数字编号文件名改为与docx同名文件名:
如:
Milky Way May Contain 100 Billion Planets 20130109.docx
sa_d_podcast_130109.mp3
改为:
20130109_Milky Way May Contain 100 Billion Planets.docx
20130109_Milky Way May Contain 100 Billion Planets.mp3
补充问题中,mp3文件的命名全部是,前面固定名“sa_d_podcast_”后面为081227、100531、130603、之类的年月日缩写日期,对应doc或docx文件名后面的20081227、20100531、20130603。
多谢! 展开
如:
20120112 Underground Nukes Leave Traceable Uplift.doc
20120112.mp3
20130103Bonobos Share with Strangers First.docx
20130104.mp3
----------------------------------------------------------
改为:
20120112_Underground Nukes Leave Traceable Uplift.doc
20120112_Underground Nukes Leave Traceable Uplift.mp3
20130103_Bonobos Share with Strangers First.docx
20130103_Bonobos Share with Strangers First.mp3
还有就是,将文件名在前数字在后的docx文件名改为“数字_文件名“,并将前面带有字母下划线的数字编号文件名改为与docx同名文件名:
如:
Milky Way May Contain 100 Billion Planets 20130109.docx
sa_d_podcast_130109.mp3
改为:
20130109_Milky Way May Contain 100 Billion Planets.docx
20130109_Milky Way May Contain 100 Billion Planets.mp3
补充问题中,mp3文件的命名全部是,前面固定名“sa_d_podcast_”后面为081227、100531、130603、之类的年月日缩写日期,对应doc或docx文件名后面的20081227、20100531、20130603。
多谢! 展开
展开全部
@echo off&setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /a-d/b/s *.*^|findstr /r /i ".doc$ .docx$"') do (set i=%%~ni
echo !i:~0,8!|findstr /r "[2][0][0-1][0-9][0-1][0-9][0-3][0-9]"&&if "!i:~8,1!"==" " (ren "%%i" "!i:~0,8!_!i:~9!%%~xi"&ren "%%~dpi!i:~0,8!.mp3" "!i:~0,8!_!i:~9!.mp3") else (ren "%%i" "!i:~0,8!_!i:~8!%%~xi"&ren "%%~dpi!i:~0,8!.mp3" "!i:~0,8!_!i:~8!.mp3"))
pause
这是你问题描述中的第一种,数字(日期)在文件名最前面,mp3命名规则为纯数字(日期).mp3.
问题补充:第二种描述比较模糊.例如mp3文件名是否为固定名+数字(日期),而且文件中的数字相对于docx文件的数字少了前两位.这些都会影响最终命名.所以如果你要解决此问题,请详细描述各种命名方式.
@echo off&setlocal enabledelayedexpansion
set fn=sa_d_podcast_
for /f "tokens=*" %%i in ('dir /a-d/b/s *.*^|findstr /r /i ".doc$ .docx$"') do (set i=%%~ni
if not "!i:~8,1!"=="_" (
echo !i:~0,8!|findstr /r "[2][0][0-1][0-9][0-1][0-9][0-3][0-9]"&&if "!i:~8,1!"==" " ( ren "%%i" "!i:~0,8!_!i:~9!%%~xi"& ren "%%~dpi!i:~0,8!.mp3" "!i:~0,8!_!i:~9!.mp3") else ( ren "%%i" "!i:~0,8!_!i:~8!%%~xi"& ren "%%~dpi!i:~0,8!.mp3" "!i:~0,8!_!i:~8!.mp3")
echo !i:~-8!|findstr /r "[2][0][0-1][0-9][0-1][0-9][0-3][0-9]"&&if "!i:~-9,1!"==" " ( ren "%%i" "!i:~-8!_!i:~0,-9!%%~xi"& ren "%fn%!i:~-6!.mp3" "!i:~-8!_!i:~0,-9!.mp3") else ( ren "%%i" "!i:~-8!_!i:~0,-8!%%~xi"& ren "%fn%!i:~-6!.mp3" "!i:~-8!_!i:~0,-8!.mp3")))
pause
以上能处理问题描述中的doc文件的两种命名方式,运行时排除已经重命名过的文件,不会出现重复命名的问题.
更多追问追答
追问
多谢jd08139! 那补充问题能否解决呢?
追答
已经解决,请测试后发现问题再反馈我
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询