Ist es möglich, Schriftarten mit dem Befehl Eingabeaufforderung unter Windows zu installieren? Wenn ja, wie lautet der Befehl?
Ich habe copy [fontname].ttf C:\Windows\Fonts\
ausprobiert und es wurde festgestellt, dass der Kopiervorgang abgeschlossen ist, aber ich konnte weder die genannten Schriften im Ordner "Fonts" noch in der Schriftenliste eines Programms finden, sodass dies mit Sicherheit nicht funktionierte. (Obwohl ich in der Lage war , die genannten Schriften anschließend aus dem Ordner Fonts zu löschen)
Es ist möglich, aber Sie müssen ein Windows Shell-Skript schreiben, um dies zu tun. Das Kopieren allein installiert die Schriftart nicht: Sie müssen auch die Schriftart registrieren, z.
copy "FontName.ttf" "%WINDIR%\Fonts"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "FontName (TrueType)" /t REG_SZ /d FontName.ttf /f
Alternativ können Sie die folgenden Codezeilen verwenden, um Ihren Anforderungen zu entsprechen. Speichern Sie es als VBS-Datei und führen Sie es dann aus.
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("<Folder or Share Location>")
Set objFolderItem = objFolder.ParseName("<TTF File Name>")
objFolderItem.InvokeVerb("Install")
Beispiel:
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\Windows\Font")
Set objFolderItem = objFolder.ParseName("Myriad Pro.ttf")
objFolderItem.InvokeVerb("Install")
Eine weitere Alternative besteht darin, Zeichensätze "temporär" nur für die aktuelle Benutzersitzung zu installieren. Die Idee ist, fontview.exe
für jede Schriftart auszuführen, wodurch es für andere Windows-Anwendungen verfügbar wird:
for /F "delims=;" %%a in ('dir C:\ExtraFonts /B /A-D-H-S /S') do fontview %%a
Die vollständige Lösung finden Sie hier .
In Powershell kann dies so einfach sein wie:
$fonts = (New-Object -ComObject Shell.Application).Namespace(0x14)
dir fonts/*.ttf | %{ $fonts.CopyHere($_.fullname) }
Ähnlich wie bei der GeneQ-Lösung gibt es hier eine Version für alle .ttf-Dateien im Skriptverzeichnis:
Set ofso = CreateObject("Scripting.FileSystemObject")
SourceFolder = ofso.GetParentFolderName(Wscript.ScriptFullName)
Const FONTS = &H14&
Set objShell = CreateObject("Shell.Application")
Set oSource = objShell.Namespace(SourceFolder)
Set oWinFonts = objShell.Namespace(FONTS)
' Lame VBscript needs 4 f*ing lines instead of "if (/\.ttf$/i) " ...
Set rxTTF = New RegExp
rxTTF.IgnoreCase = True
rxTTF.Pattern = "\.ttf$"
FOR EACH FontFile IN oSource.Items()
IF rxTTF.Test(FontFile.Path) THEN
oWinFonts.CopyHere FontFile.Path
END IF
NEXT
Sie können auch das Dienstprogramm FontReg verwenden, um Schriftarten über eine Eingabeaufforderung zu installieren.
Erstellen Sie eine Skriptdatei mit dem Namen InstallFonts.vbs. In meinem Fall habe ich sie unter C:\PortableApps\InstallFonts\IN abgelegt. Ersetzen Sie "SomeUser" durch den Benutzernamen der Person, die die Schriftarten installieren soll. Legen Sie dann den entsprechenden Ordner "Schriften installieren" auf dem Desktop fest.
Set ofso = CreateObject("Scripting.FileSystemObject")
'SourceFolder = ofso.GetParentFolderName(Wscript.ScriptFullName)
SourceFolder = "C:\Users\SomeUser\Desktop\Install Fonts"
Const FONTS = &H14&
Set objShell = CreateObject("Shell.Application")
Set oSource = objShell.Namespace(SourceFolder)
Set oWinFonts = objShell.Namespace(FONTS)
' Lame VBscript needs 4 f*ing lines instead of "if (/\.ttf$/i) " ...
Set rxTTF = New RegExp
rxTTF.IgnoreCase = True
rxTTF.Pattern = "\.ttf$"
FOR EACH FontFile IN oSource.Items()
IF rxTTF.Test(FontFile.Path) THEN
oWinFonts.CopyHere FontFile.Path
END IF
NEXT
Erstellen Sie nun eine Verknüpfung auf dem Desktop, die wie folgt lautet ...
C:\Windows\System32\runas.exe /user:Administrator /savecred "wscript C:\PortableApps\InstallFonts\InstallFonts.vbs"
Beachten Sie, dass ich "Administrator" verwendet habe. Ich habe es aktiviert und ihm ein Passwort zugewiesen. Ich nehme an, Sie könnten dafür ein beliebiges Administratorkonto verwenden. Wenn Sie die Verknüpfung zum ersten Mal ausführen, werden Sie jedes Mal zur Eingabe des Administratorkennworts aufgefordert.
Wenn Sie nicht zur Eingabe eines Kennworts aufgefordert werden, führen Sie die Verknüpfung über eine Cmd-Eingabeaufforderung aus, die Sie dann auffordern sollte.
Ich kann Ihnen nicht versprechen, wie sicher dies ist, wenn Sie damit erhöhten Code ausführen könnten. Es ist jedoch eine Lösung.
Wie bereits von GeneQ erwähnt, gehen Sie wie folgt vor (ich habe es getestet)
für/F "delims =;" % a in ('Verzeichnis C:\FontsDir/B/A-D-H-S/S') führt die Schrift% a aus
Wobei C:\FontsDir das Verzeichnis ist, in dem Ihre TFF-Dateien gespeichert sind. Sobald "fontview" ausgeführt wurde, werden so viele Fenster geöffnet, wie sich tff-Dateien im "FontsDir" -Verzeichnis befinden. Sie müssen nur auf "Installieren" klicken und schon sind Sie da! Ihre Schriften sind auf Ihrem System installiert
Hoffe es würde jemandem helfen