Я нашел сценарий для установки шрифтов и отредактировал его, чтобы установить вместе с ним некоторые шрифты (массив шрифтов), но он не запускается. Эта строка вызывает ошибку:
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



Объекты ArrayList не имеют метода InvokeVerb, а VBScript не предоставляет перечисление участников, как это делает PowerShell (что позволило бы интерпретатору вызывать метод для элементов массива, превышающих размер самого массива).
Как уже упоминалось в ACatInLove, вам необходимо использовать цикл For Each для перечисления элементов массива и вызова метода для каждого элемента:
For Each el In array
el.InvokeVerb("install")
Next
Вам нужно сделать
InvokeVerbв циклеFor ... Next.