&&相信大家都有过这样的经历,从网上批量下歌曲时得到的文件名并不是我们所想要的歌手+歌曲名格式,
而是一堆序列号或随机生成的字符串文件名,如001.m3、kjfdakfjfsa.wma。怎么办?其实无论文件名
怎么乱,只要它还是一个标准的音频文件,在其文件中就会含有歌手和歌名的信息,这个我们右键音频文件
的属性摘要就能看到。既然,这些信息存在于文件之中,那么能不能用什么方法获取出来并格式化地重命名
我们的音频文件呢?YES,下面的代码就是为解决这个问题而生的:- Dim PathFile, Path, File, Ext
- If WScript.Arguments.Count = 0 Then
- GetFile
- Else
- PathFile = WScript.Arguments(0)
- End If
- Dim objFSO
- Set objFSO = CreateObject("Scripting.FileSystemObject")
- Path = objFSO.GetFile(pathfile).ParentFolder & "\"
- File = objFSO.GetFile(pathfile).Name
- Ext = "." & objFSO.GetExtensionName(PathFile)
- Dim objSHELL
- Set objSHELL = CreateObject("Shell.Application")
- Dim objPath, objFile, objName, Arlt, Name
- Set objPath = objSHELL.NameSpace(Path)
- Set objFile = objPath.ParseName(File)
- For i = 0 To 50
- If objPath.GetDetailsOf(,i) = "作者" Then Arlt = objPath.GetDetailsOf(objFile, i)
- If objPath.GetDetailsOf(,i) = "标题" Then Name = objPath.GetDetailsOf(objFile, i)
- Next
- If Arlt <> "" And Name <> "" Then
- objFSO.CopyFile PathFile, Path & Arlt & "_" & Name & Ext, True
- objFSO.DeleteFile PathFile
- End If
- Set objFSO = Nothing
- Set objSHELL = Nothing
-
- Function GetFile
- Dim objDIA
- Set objDIA = CreateObject("Useraccounts.Commondialog")
- objDIA.Filter = "mp3文件|*.mp3|wma文件|*.wma|wav文件|*.wav|所有文件|*.*|"
- objDIA.InitialDir = "\.\"
- objDIA.ShowOpen
- PathFile = objDIA.FileName
- Set objDIA = Nothing
- End Function
复制代码 说明:
1、在XP下代码支持双击选择文件类型和文件以及拖放文件,WIN7下仅支持文件拖放(蛋疼)
2、重命名的格式为“歌手_歌名”,请根据自己需要修改
3、本人暂时只测试了mp3、wma、wav文件,欢迎测试
4、暂不支持批量拖入 |