我試圖從腳本運行的文件夾中的視頻文件獲取擴展文件屬性,並將結果輸出到文本文件。從文件中獲取擴展屬性
這是我到目前爲止的代碼:
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