私は、スクリプトが実行されたフォルダ内のビデオファイルから拡張ファイルプロパティを取得し、結果をテキストファイルに出力しようとしています。ファイルから拡張プロパティを取得
これは、これまで私が持っているコードです:
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
をVBSファイルをクリックすることで、スクリプトを実行しているスクリプトがエラーなしで実行され、ファイル名を返しますが、拡張プロパティを返しません。どんな助けでも大歓迎です。
まず、 'この文から取り除くと、このスクリプトを再実行し、あなたが今までエラーとして手に入れたのを教えて:
は、このコードを試してみてください? – Hackoo私はそれをして40行目を得ました5許可が拒否されました。 –
私は自分のシステムでいくつかのコードを試してみましたが、mp4ファイルの場合にのみ動作します。 flv、avi、mkvの場合は、サイズ、長さ、フレームの高さ、幅は取得できませんでした。あなたが望むなら私はコードを共有することができます – Gurman