我试图从脚本运行的文件夹中的视频文件获取扩展文件属性,并将结果输出到文本文件。从文件中获取扩展属性
这是我到目前为止的代码:
Dim ls, fsObj, fd, fs, fl, sfs, sf, tf
' specify the file extensions to list
dim fileTypes
fileTypes = Array("mp4","mkv","avi")
On Error Resume Next
ls = ""
Set fsObj = CreateObject("Scripting.FileSystemObject")
Set fd = fsObj.GetFolder(".")
Set objFolder = objShell.NameSpace(fsObj)
set fs = fd.Files
For Each fileName in objFolder.Items
set objFolderItem = objFolder.ParseName(fileName)
size = objFolder.GetDetailsOf(objFolderItem, 1)
length = objFolder.GetDetailsOf(objFolderItem, 27)
height = objFolder.GetDetailsOf(objFolderItem, 283)
width = objFolder.GetDetailsOf(objFolderItem, 285)
Next
' list subfolders
set sfs = fd.SubFolders
For Each sf in sfs
ls = ls & sf.name & vbCrLf & chr(10)
Next
For Each fl in fs
' check whether the extension matches
if arrayContains(fileTypes, fsObj.GetExtensionName(fl.name))then
ls = ls & fl.name & vbtab & length & vbCrLf & chr(10)
end if
Next
Set tf = fsObj.OpenTextFile("index.txt", 2, True, False)
tf.Writeline ls
tf.Close
Set fsObj = Nothing
function arrayContains (arr, val)
dim found
found = false
for i = 0 to ubound(arr)
if arr(i) = val then
found = true
exit for
end if
next
arrayContains = found
end function
我试图获取文件名和长度,一旦我能,我可以添加其他。
据我猜测,我需要指定objFolder.ParseName(fileName)。我如何指定与文件类型数组匹配的所有文件?我试过fl.name和fd.files。我不知道还有什么要尝试。
我双击在Windows 7
脚本从Windows资源管理VBS文件运行脚本,没有错误,运行和返回的文件名,但不返回扩展属性。任何帮助将不胜感激。
首先,从我们这一说法摆脱'在错误恢复next'并重新执行该脚本,并告诉我们你是怎么得到的错误到现在? – Hackoo
我做到了,并得到第40行char 5权限被拒绝。 –
嗯,我尝试了一些代码在我的系统上,它的工作原理,但只适用于mp4文件。对于flv,avi,mkv,我只能检索它们的大小(但不是长度,帧高和宽度)。我可以分享代码,如果你想 – Gurman