眉山东坡论坛

 找回密码
 注册账号

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 6780|回复: 1
收起左侧

[资料经验] 用VBS批量更改下载的电影文件名

[复制链接]
发表于 2013-6-22 15:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转东坡论坛

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
经常用迅雷拖回来一大堆电影,但是电影上面的域名太多了,一个个改又麻烦,于是写了一段小程序来完成这个功能,将下列代码复制后,粘贴到你的“记事本”里面,存盘后把.txt的扩展名改成.vbs的文件名,放到你的电影目录下即可。此程序不更改子文件夹下面的文件名,如果需要这个功能请回贴我们定做一个。

  1. Dim fso,folder,f,files
  2. Set fso=WScript.CreateObject("scripting.filesystemobject")
  3. str2=array("HD","BD","】","【","夜来香社区","星星草","⊙","版","1280","国语","中英双字","粤语","中字","DVD","Rip","rmvb","mkv","mp4","avi","rm","ts","f4v","srt","ass","BluRay","720p","AC3","x264","264","2Audio","高清","6v电影","影视帝国","蓝光","经典动画大片","思雨电影网","最新电影","下载去","下载","wWw.SiYu88.Cn","无水印","最新","美国动作大片","动作大片","大片","英语","迅雷","下载","美国犯罪动作惊悚大片","倩影翩翩","114电影网","拷盘","飘花电影")
  4. str1="^\.|^-|\(|\)|\.\.|\[|\]|\.$$|-$$"
  5. for each f in str2
  6.   str1=str1 & "|" &f
  7. next
  8. str2="(" & str1 & ")"
  9. set folder=fso.getfolder(".")
  10. set files=folder.files
  11. For each f in files
  12.     file_name = f.name
  13.     file_ext = fso.GetExtensionName(f.name)
  14.     tmp=0
  15.     if file_ext = "rmvb" then tmp=4
  16.     if file_ext = "mkv" then tmp=3
  17.     if file_ext = "mp4" then tmp=3
  18.     if file_ext = "avi" then tmp=3
  19.     if file_ext = "rm" then tmp=2
  20.     if file_ext = "ts" then tmp=2
  21.     if file_ext = "f4v" then tmp=3
  22.     if file_ext = "srt" then tmp=3
  23.     if file_ext = "ass" then tmp=3
  24.     if tmp >0 then
  25.         file_name=left(file_name,len(file_name)-tmp-1) '下句合并空格、替换中文空格为英文空格
  26.         while instr(file_name,"  ") or instr(file_name," "):file_name=replace(file_name,"  "," "):file_name=replace(file_name," "," "):wend
  27.         file_name=DelDomain(file_name) '先删除域名
  28.         file_name=DelQQ(file_name) '先删除QQ
  29.         file_name=trim(DelOther(file_name,str2)) '再删除其他多余字符,和前后空格
  30.         if len(file_name) > 0 then
  31.             file_name=file_name & "." & file_ext
  32.             if file_name <> f.name then
  33.                 fso.GetFile(f).Name = file_name
  34.             end if
  35.         end if
  36.      end if
  37. next
  38. WScript.quit

  39. Function DelDomain(str1) '删除文件名中的域名
  40.     Set regEx = New RegExp               ' 建立正则表达式。
  41.     regEx.Pattern = "\b([A-Za-z0-9\.])*(.com|.cn|.net|.cc)\b"  ' 建模。
  42.     str1=regEx.Replace(str1, "")         ' 作替换。
  43.     str1=regEx.Replace(str1, "")         ' 再换一次。
  44.     DelDomain=regEx.Replace(str1, "")    ' 又换一次。
  45. End Function

  46. Function DelQQ(str1) '删除文件名中的QQ
  47.     Set regEx = New RegExp               ' 建立正则表达式。
  48.     regEx.Pattern = "\bQ{2}[ |:]*(\d+)*\b"  ' 建模。
  49.     DelQQ=regEx.Replace(str1, "")    ' 又换一次。
  50. End Function

  51. Function DelOther(str1,str2)
  52.     Set regEx = New RegExp               ' 建立正则表达式。
  53.     regEx.Pattern = str2  ' 建模。
  54.     regEx.IgnoreCase = True               ' 设置是否区分大小写。
  55.     while len(str1)>len(regEx.Replace(str1, ""))
  56.       str1=regEx.Replace(str1, "")
  57.     wend
  58.     DelOther=str1
  59. End Function
复制代码
发表于 2016-3-6 10:44 | 显示全部楼层
楼主这方法不错
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|关于我们|小黑屋|爱好群|眉山东坡论坛 ( 蜀ICP备05001993号-1 )

GMT+8, 2018-1-20 22:55

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表