如何使用VBScript读取mp4文件的属性?



我试图使用VBScript制作我的电影库的数据库,但我不知道如何获得mp4文件的属性。出于类似的目的,我在另一个问题中使用了这段代码。以下是我目前编写的代码。

Option Explicit
Dim objFSO,objf,objfolder, objFile, strFileProperties, strFiles,OBJFLD,objfile2
dim objf1,objfile1,objtextfile,strfolderproperties,objsubfld,objfl,objfl1,strfileproperties2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objf= objFSO.Getfolder("E:Share DriveChrisMovies")
set OBJfl=objf.files
for each objfl1 in OBJfl
  'display properties of the files of the main folder   
  strFileProperties2 = strFileProperties2 & "Title: " & objfl1.Name & VbCrLf
  strFileProperties2 = strFileProperties2 & "Size: " & objFl1.Size & " bytes" & VbCrLf
  strFileProperties2 = strFileProperties2 & "Type: " & objFl1.Type & VbCrLf & vbcrlf
next
set objf1=objfso.getfolder("C:")
set objfile1=objfso.getfile( "C:database.txt")
set objf1=nothing
set objfile1=nothing
set objtextfile=objfso.opentextfile("C:database.txt",8,true)
objtextfile.writeline(strfileproperties)
objtextfile.writeline(strfileproperties2)
objtextfile.close
set objf1=objfso.getfolder("C:")
set objfile1=objfso.getfile( "C:database.txt")
set objf1=nothing
set objfile1=nothing
set objsubfld=objfso.opentextfile("C:database.txt",8,true)
objsubfld.writeline(strfolderproperties)
objsubfld.close

我想要的其他属性是帧宽度,帧高度和长度。我试过objMp4File.Length,但我得到一个错误,说它没有定义。我是新来的VBScript,所以我可能会在这个错误的方式。

这取决于你的操作系统,对于Windows 7这将工作,参见http://msdn.microsoft.com/en-us/library/windows/desktop/bb787870%28v=vs.85%29.aspx;

fname = objFolder.GetDetailsOf(objFolderItem, 155)
size = objFolder.GetDetailsOf(objFolderItem, 1)
ftype = objFolder.GetDetailsOf(objFolderItem, 2)
length = objFolder.GetDetailsOf(objFolderItem, 27)
frameheight = objFolder.GetDetailsOf(objFolderItem, 283)
framewidth = objFolder.GetDetailsOf(objFolderItem, 285)

试一试

Option Explicit
Dim shellApplication, folderNamespace
    Set shellApplication = CreateObject("Shell.Application")
    Set folderNamespace  = shellApplication.Namespace("E:Share DriveChrisMovies")
Dim headers, i, aHeaders(290)
    For i = 0 to 289
        aHeaders(i) = folderNamespace.GetDetailsOf(folderNamespace.Items, i)
    Next

Dim fileName    
    For Each fileName in folderNamespace.Items
        If LCase(Right(fileName,4))=".mp4" Then 
            For i = 0 to 289
                Wscript.Echo i & vbtab & aHeaders(i) & ": " & folderNamespace.GetDetailsOf(fileName, i)
            Next
            WScript.Echo "-------------------------------------------------------"
        End If
    Next

每种类型的文件可用的属性集可以并且将会有所不同。

最新更新