标题: [文件操作] 批处理怎样修改文件名? [打印本页]
作者: maobin126 时间: 2013-11-21 20:43 标题: 批处理怎样修改文件名?
请各位大侠帮忙写个批处理,这种文件太多了太难改了谢谢
原文件名字
爱就爱了_AJAL_L_80_其它_国语_24733.mov
爱人危险_ARWX_R_80_经典_国语_75274.mpg
别怕有我_BPYW_L_80_其它_国语_24730.mov
粉红_FH_R_80_经典_国语_75275.mpg
改成新名字
陈琳-爱就爱了.mov
陈琳-爱人危险.mpg
陈琳-别怕有我.mov
陈琳-粉红.mpg
作者: foxJL 时间: 2013-11-21 22:43
"陈琳"是哪来的,人为加的吗?
作者: maobin126 时间: 2013-11-21 23:13
格式是这样的, 就是说要把后面的去掉 然后再前面加陈琳
作者: maobin126 时间: 2013-11-21 23:17
歌名后面的多余去掉 前面在加上歌手名字
爱就爱了_AJAL_L_80_其它_国语_24733.mov
爱人危险_ARWX_R_80_经典_国语_75274.mpg
别怕有我_BPYW_L_80_其它_国语_24730.mov
粉红_FH_R_80_经典_国语_75275.mpg
改成新名字
陈琳-爱就爱了.mov
陈琳-爱人危险.mpg
陈琳-别怕有我.mov
陈琳-粉红.mpg
作者: foxJL 时间: 2013-11-21 23:59
歌手姓名是从视频文件属性里面读取出来的?如果是,批处理没有这能力,可以找VBS别的脚本.
作者: maobin126 时间: 2013-11-22 01:07
歌手名字是人为加上去的
作者: changedirectory 时间: 2013-11-22 09:09
本帖最后由 changedirectory 于 2013-11-22 09:12 编辑
如果都是陈琳的歌曲,而且有都7个_符号的话,可以使用下面的批处理试试:- attrib +s "%~f0"
- for /r %%a in (*) do (
- for /f "tokens=1-8 delims=_." %%b in ("%%~nxa") do (
- ren "%%a" "陈琳-%%b.%%i"
- )
- )
- pause
复制代码
作者: foxJL 时间: 2013-11-22 10:41
- @echo off&attrib +s "%~f0"
- for /f "tokens=1* delims=_" %%i in ('dir /b') do (ren,"%%i_%%j" "陈琳-%%i%%~xj")
复制代码
作者: 胡洋 时间: 2013-11-22 18:14
假设文件均在目录“D:\test”之下,powershell代码:- Get-ChildItem D:\test |%{
- Rename-Item -Path D:\test\$_ -NewName $("陈琳-" + $(($_ -split '[_.]')[0,-1] -join '.'))
- }
复制代码
本机测试通过,望采纳,谢谢!
作者: maobin126 时间: 2013-11-22 22:15
谢谢各位,经过测试还是8楼咱版主的好用能达到最终效果。不论文件名长短和文件格式 ,版主的只删除多余的并且添加上想要的文字 在此我谢谢大家了
作者: maobin126 时间: 2013-11-22 23:34
再请教 d:\大陆歌星\ 目录下有很多个歌星文件夹 里面的歌曲文件名都需要改
不同的歌星文件夹名字也不同 如何用批处理实现在不同歌星的歌曲名字前面加上歌星的名字,然后再把后面的多余去掉
例如: D:\大陆男星\东来东往\
别说我的眼泪你无所谓_BSWDYLNWSW_R_80_经典_国语_74553.mpg
唱情歌的人_CQGDR_L_90_经典_国语_60213.mov
异度空间的爱_ydkjd_r_80_经典_国语_200808.mpg
改变后:
东来东往-别说我的眼泪你无所谓.mpg
东来东往-唱情歌的人.mov
东来东往-异度空间的爱
D:\大陆男星\陈星\
打工情歌_DGQG_L_80_经典_国语_75480.mpg
归来吧爱人_GLBAR_L_80_其它_国语_34615.mov
心中的山茶花_XZDSCH_L_80_其它_国语_34614.mov
我不是爱情的逃兵_WBSAQDTB_L_80_民谣_国语_34608.mov
修改后
陈星-打工情歌.mpg
陈星-归来吧爱人.mov
陈星-心中的山茶花.mov
陈星-我不是爱情的逃兵.mov
。。。。。。
很多各种歌星的文件夹,里面的文件名字全部修改
求助大家帮忙
作者: foxJL 时间: 2013-11-23 00:09
我在2楼就问了你歌手名是不是人为加的,你早说是文件夹名做歌手名不就得了。
现在先睡了,明天再帮你改代码
作者: foxJL 时间: 2013-11-23 11:27
回复 11# maobin126 - @echo off
- for /f "tokens=1* delims=_" %%i in ('dir /b /s /a-d "D:\歌星\*_*.*"') do (
- for %%k in ("%%j\..") do (ren "%%i_%%j" "%%~nxk-%%~nxi%%~xj")
- )
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |