it-swarm.com.de

Wie installiere ich eine Schriftart über die Windows-Eingabeaufforderung?

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)

36
Mussnoon

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 .

30
GeneQ

In Powershell kann dies so einfach sein wie:

$fonts = (New-Object -ComObject Shell.Application).Namespace(0x14)
dir fonts/*.ttf | %{ $fonts.CopyHere($_.fullname) }
16
Guss

Ä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
5
mivk

Sie können auch das Dienstprogramm FontReg verwenden, um Schriftarten über eine Eingabeaufforderung zu installieren.

3
afrazier

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.

1
Desktop Masters

Wie bereits von GeneQ erwähnt, gehen Sie wie folgt vor (ich habe es getestet)

  1. Öffnen Sie eine Befehlszeile mit Administratorrechten
  2. Verwenden Sie den Befehl:

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

0
Sam Doxy