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

37

Ist es möglich, Schriftarten über die Eingabeaufforderung unter Windows zu installieren? Wenn ja, wie lautet der Befehl?

Ich habe versucht copy [fontname].ttf C:\Windows\Fonts\und festgestellt, dass der Kopiervorgang abgeschlossen ist, aber ich konnte die genannten Schriftarten weder im Ordner "Schriftarten" noch in der Schriftartenliste eines Programms finden, sodass dies mit Sicherheit nicht funktioniert hat. (Obwohl ich war die Lage , das zu löschen , die Schriftarten aus dem Ordner Schriftart danach)

Mussnoon
quelle

Antworten:

31

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.exefür jede Schriftart auszuführen , wodurch sie 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 .

GeneQ
quelle
Werden Sie so freundlich sein, Ihr Skript zu erweitern, um: (1) Alle *.ttfund *.fonSchriften aus dem aktuellen Verzeichnis automatisch zu installieren (2) Verwenden Sie Const FONTS = &H14&wie hier vorgeschlagen ( sevenforums.com/general-discussion/… ). Ich bin kein König auf VBS :( Vielen Dank im Voraus.
dma_k
1
objFolderItem.InvokeVerb("Install")funktioniert nicht unter Windows Server 2012 R2
Anthony Kong
@GeneQ: Mit dem Symbol copyund reg addwird die in Windows® 10-Programmen aufgeführte Schriftart nicht erstellt.
user2284570
16

In Powershell kann dies so einfach sein wie:

$fonts = (New-Object -ComObject Shell.Application).Namespace(0x14)
dir fonts/*.ttf | %{ $fonts.CopyHere($_.fullname) }
Guss
quelle
3
Ich würde die zweite Zeile mit ändernGet-ChildItem -Recurse -include *.ttf | % { $fonts.CopyHere($_.fullname) }
EvgeniySharapov
2
Zugegeben, Get-ChildItemist der Powershell-Weg, ich hasse nur den Powershell-Weg (Unix Shell affectionado hier) und dirist nur ein Alias ​​dafür; und wenn Sie eine Rekursion wünschen, sind die von Ihnen bereitgestellten Optionen der richtige Weg. Für die einfache "scannen Sie einfach die Dateien in diesem Ordner", ist meine Version weniger ausführlich und besser lesbar.
Guss
5

Ä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
mivk
quelle
Sie haben gerade meinen Tag gerettet :) Meine Windows-Standardschrift wurde beschädigt, und nur so konnte ich alle Windows-Standardschriften neu installieren. Vielen Dank!!
Rima
perfekt! Ich habe dies in einer vbs verwendet, die von einer Fledermausdatei für eine Reihe von Computern ausgeführt wurde, nachdem eine Firma eine neue Marke eingeführt hatte. Es installiert die Schriftarten, installiert die E-Mail-Signaturdateien für Outlook und legt die Startseite des Browsers fest
Reece
3

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

afrazier
quelle
1
Dies hat bei mir unter Windows 10 64bit nicht funktioniert.
Djangofan,
1
@djangofan: Haben Sie eine Eingabeaufforderung mit erhöhten Rechten verwendet? Ich habe fontreg unter Windows 10 noch nicht ausprobiert, aber ich würde erwarten, dass dies erforderlich ist.
afrazier
Das Problem war, dass ich versuchte, Mac-Schriftarten auf meinem System zu installieren (sie haben keine Dateinamenerweiterungen). Ich habe die Windows .ttf-Schriftdateien und alles ist jetzt gut.
Djangofan
1

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 ihrem 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 an einer 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.

Desktop Masters
quelle
0

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 / ADHS / S') führt die Schrift% a aus

Wobei C: \ FontsDir das Verzeichnis ist, in dem Ihre TFF-Dateien gespeichert sind. Einmal ausgeführte "fontview" -Fenster werden so oft 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

Sam Doxy
quelle
warum so ein komplexer forbefehl statt (zum beispiel) for %a in (C:\FontsDir\*.*) do fontview "%a"?
Ale
Der Befehl zeigt auch versteckte Schriftarten
Sam Doxy
-1

Sie haben Ihre Windows-Version nicht aufgelistet, aber ich gehe davon aus, dass Sie mit Vista oder 7 arbeiten. Für das Kopieren in dieses Verzeichnis sind Administratorrechte erforderlich. Versuchen Sie noch einmal, was Sie getan haben, aber verwenden Sie diesmal eine Eingabeaufforderung mit erhöhten Rechten.

jsejcksn
quelle
3
Er sagte, dass die Kopie erfolgreich war. Wenn die Erlaubnis ihn daran gehindert hätte, erfolgreich zu kopieren, hätte es ihm gesagt, dass die Kopie fehlgeschlagen ist, also ist dies wahrscheinlich nicht das Problem.
nhinkle
-1

Ich habe viel Zeit darauf verwendet, einen Weg zu finden, um Schriftarten ohne Neustart zu installieren. Endlich habe ich folgendes gefunden: ClickFont . Es ist eine einfache und genaue Lösung.

ClickFont ermöglicht die einfache Installation von TrueType-, OpenType- und PostScript-Schriftarten mit nur zwei Mausklicks von überall im System. Ein Rechtsklick auf eine Schriftart oder einen Ordner genügt.

SelçukDERE
quelle