Die Schriftart kann nicht mit VBScript installiert werden, da die Ausnahme "Object Required: 'objFolderItem" "vorhanden ist.

1072
Anthony Kong

Hier ist mein Skript basierend auf Wie installiere ich eine Schrift von der Windows-Eingabeaufforderung aus?

Dim WinFontDir Dim SrcFontDir WinFontDir = "C:\Windows\Fonts" SrcFontDir = "..\fonts.test"   Set objShell = CreateObject("Shell.Application") Set objFontFolder = objShell.Namespace(WinFontDir) Set objFSO = CreateObject("Scripting.FileSystemObject") Set objSrc = objFSO.GetFolder(SrcFontDir) Set colFiles = objSrc.Files For each objFile in colFiles If objFSO.FileExists(WInFontDir + "\" + objFile.Name) Then WScript.Echo objFile.Name  else WScript.Echo "Copying " + objFile.Name objFSO.CopyFile SrcFontDir + "\" + objFile.Name, WinFontDir + "\" + objFile.Name Set objFolderItem = objFontFolder.ParseName(objFile.Name) objFolderItem.InvokeVerb("Install") // <- exception End If Next 

Grundsätzlich möchte ich in der Lage sein, einen Ordner mit Schriftarten zu durchlaufen und nur dann zu kopieren und zu installieren, wenn eine Schriftdatei nicht in "C: \ Windows \ Fonts" vorhanden ist.

Aber wenn es um diese Zeile geht, objFolderItem.InvokeVerb("Install")bekam ich folgende Fehlermeldung:

Objekt erforderlich: 'objFolderItem'

Was ist die Ursache?

0

1 Antwort auf die Frage

0
Anthony Kong

Am Ende funktioniert nur dieser Weg für mich:

Dim WinFontDir Dim SrcFontDir WinFontDir = "C:\Windows\Fonts" SrcFontDir = "..\fonts"  Set objShell = CreateObject("Shell.Application") Set objFSO = CreateObject("Scripting.FileSystemObject") Set objSrc = objFSO.GetFolder(SrcFontDir) Set colFiles = objSrc.Files For each objFile in colFiles If Not objFSO.FileExists(WInFontDir + "\" + objFile.Name) Then WScript.Echo "Copying " + objFile.Name FONTS = &H14& Set objFontFolder = objShell.Namespace(FONTS) objFontFolder.CopyHere objFile.Path End Next 

Hinweis: Kopieren Sie nur Dateien, die nicht im Zeichensatzordner vorhanden sind