[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理怎样修改文件名?

请各位大侠帮忙写个批处理,这种文件太多了太难改了谢谢

原文件名字

爱就爱了_AJAL_L_80_其它_国语_24733.mov
爱人危险_ARWX_R_80_经典_国语_75274.mpg
别怕有我_BPYW_L_80_其它_国语_24730.mov
粉红_FH_R_80_经典_国语_75275.mpg
改成新名字

陈琳-爱就爱了.mov
陈琳-爱人危险.mpg
陈琳-别怕有我.mov
陈琳-粉红.mpg

"陈琳"是哪来的,人为加的吗?

TOP

格式是这样的,  就是说要把后面的去掉 然后再前面加陈琳

TOP

歌名后面的多余去掉 前面在加上歌手名字

爱就爱了_AJAL_L_80_其它_国语_24733.mov
爱人危险_ARWX_R_80_经典_国语_75274.mpg
别怕有我_BPYW_L_80_其它_国语_24730.mov
粉红_FH_R_80_经典_国语_75275.mpg
改成新名字

陈琳-爱就爱了.mov
陈琳-爱人危险.mpg
陈琳-别怕有我.mov
陈琳-粉红.mpg

TOP

歌手姓名是从视频文件属性里面读取出来的?如果是,批处理没有这能力,可以找VBS别的脚本.

TOP

歌手名字是人为加上去的

TOP

本帖最后由 changedirectory 于 2013-11-22 09:12 编辑

如果都是陈琳的歌曲,而且有都7个_符号的话,可以使用下面的批处理试试:
  1. attrib +s "%~f0"
  2. for /r %%a in (*) do (
  3.    for /f "tokens=1-8 delims=_." %%b in ("%%~nxa") do (
  4.       ren "%%a" "陈琳-%%b.%%i"
  5.    )
  6. )
  7. pause
复制代码

TOP

  1. @echo off&attrib +s "%~f0"
  2. for /f "tokens=1* delims=_" %%i in ('dir /b') do (ren,"%%i_%%j" "陈琳-%%i%%~xj")
复制代码

TOP

假设文件均在目录“D:\test”之下,powershell代码:
  1. Get-ChildItem D:\test |%{
  2. Rename-Item -Path D:\test\$_ -NewName  $("陈琳-" + $(($_ -split '[_.]')[0,-1] -join '.'))
  3. }
复制代码
本机测试通过,望采纳,谢谢!

TOP

谢谢各位,经过测试还是8楼咱版主的好用能达到最终效果。不论文件名长短和文件格式 ,版主的只删除多余的并且添加上想要的文字  在此我谢谢大家了

TOP

再请教 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

   。。。。。。

很多各种歌星的文件夹,里面的文件名字全部修改
求助大家帮忙

TOP

我在2楼就问了你歌手名是不是人为加的,你早说是文件夹名做歌手名不就得了。
现在先睡了,明天再帮你改代码

TOP

回复 11# maobin126
  1. @echo off
  2. for /f "tokens=1* delims=_" %%i in ('dir /b /s /a-d "D:\歌星\*_*.*"') do (
  3.   for %%k in ("%%j\..") do (ren "%%i_%%j" "%%~nxk-%%~nxi%%~xj")
  4. )
复制代码

TOP

返回列表