我找到了一个安装字体的脚本,我编辑它来安装一些字体(字体数组),但它没有运行。此行引发错误:
array.InvokeVerb("Install")
似乎用另一个函数替换InvokeVerb
但我不知道!
有人可以帮助我吗?
我的剧本:
Option Explicit
'Installing multiple Fonts in Windows 7
Dim objShell, objFSO, wshShell
Dim strFontSourcePath, objFolder, objFont, objNameSpace, objFile
Dim array : Set array = CreateObject("System.Collections.ArrayList")
Set objShell = CreateObject("Shell.Application")
Set wshShell = CreateObject("WScript.Shell")
Set objFSO = createobject("Scripting.Filesystemobject")
strFontSourcePath = "C:\Users\Win7\Desktop\new_Software\Fonts"
If objFSO.FolderExists(strFontSourcePath) Then
Set objNameSpace = objShell.Namespace(strFontSourcePath)
Set objFolder = objFSO.GetFolder(strFontSourcePath)
For Each objFile In objFolder.Files
If LCase(Right(objFile,4)) = ".ttf" Or LCase(Right(objFile,4)) = ".otf" Then
array.Add objNameSpace.ParseName(objFile.Name)
End If
Next
array.InvokeVerb("Install")
Else
WScript.Echo "Font Source Path does not exists"
End If
答案 0 :(得分:0)
ArrayList
个对象没有InvokeVerb
方法,而VBScript不像PowerShell那样提供member enumeration(这将允许解释器调用数组项上的方法rahter比阵列本身。)
正如ACatInLove已提到的那样,您需要使用For Each
循环来枚举数组元素并在每个元素上调用该方法:
For Each el In array
el.InvokeVerb("install")
Next