Как установить шрифт из командной строки Windows?

можно ли установить шрифты из командной строки в Windows? Если да, то какая команда?

пробовал copy [fontname].ttf C:\Windows\Fonts\ и он сказал, что копирование было завершено, но я не мог ни найти указанные шрифты в папке Fonts, ни найти их в списке шрифтов любой программы, так что, конечно, не работает. (Хотя Я был возможность удалить указанные шрифты из папки Fonts впоследствии)

34
задан Andrea 2010-10-21 16:58:51
источник

8 ответов

это возможно, но для этого вам нужно написать сценарий оболочки Windows. Копирование само по себе не установит шрифт: вам также нужно зарегистрировать шрифт, например

copy "FontName.ttf" "%WINDIR%\Fonts"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "FontName (TrueType)" /t REG_SZ /d FontName.ttf /f

в качестве альтернативы вы можете следующие строки кода в соответствии с вашими потребностями; сохраните его как .VBS-файл, а затем выполнить его.

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("<Folder or Share Location>")
Set objFolderItem = objFolder.ParseName("<TTF File Name>")
objFolderItem.InvokeVerb("Install")

пример:

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\Windows\Font")
Set objFolderItem = objFolder.ParseName("Myriad Pro.ttf")
objFolderItem.InvokeVerb("Install")

еще одна альтернатива - установить шрифты "временные", только для текущей сессии пользователя. Идея состоит в том, чтобы запустить fontview.exe для каждого шрифта, что делает его доступным для других приложений Windows:

for /F "delims=;" %%a in ('dir C:\ExtraFonts /B /A-D-H-S /S') do fontview %%a

Посмотреть полное решение здесь.

28
отвечен GeneQ 2011-08-17 18:19:23
источник

в Powershell это может быть так просто, как:

$fonts = (New-Object -ComObject Shell.Application).Namespace(0x14)
dir fonts/*.ttf | %{ $fonts.CopyHere($_.fullname) }
16
отвечен Guss 2014-07-27 18:51:08
источник

аналогичное решение GeneQ, вот версия для всех .ttf файлы в каталоге скрипта:

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 2011-10-02 19:11:30
источник

вы также можете использовать FontReg утилита для установки шрифтов из командной строки.

3
отвечен afrazier 2010-12-21 23:44:59
источник

создайте файл сценария с именем InstallFonts.vbs в моем случае я положил его в C:\PortableApps\InstallFonts\ В приведенном ниже коде замените "SomeUser" на имя пользователя, которому вы хотите установить шрифты. Затем создайте соответствующую папку "install Fonts"на рабочем столе.

    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

теперь создать ярлык на рабочем столе, который выглядит следующим образом...

C:\Windows\System32\runas.exe /user:Administrator /savecred "wscript C:\PortableApps\InstallFonts\InstallFonts.vbs"

обратите внимание, что я использовал "администратор". Я включил его и назначил ему пароль. Я полагаю, вы могли бы использовать любая учетная запись администратора. При первом запуске ярлыка вам будет предложено ввести пароль администратора.. каждый раз после него будет просто работать.

если он не запрашивает пароль, запустите ярлык из командной строки, он должен запросить вас.

Я не могу обещать вам, насколько это безопасно, если бы они могли использовать его для запуска кода с повышенными привилегиями. Однако это решение проблемы.

1
отвечен Desktop Masters 2015-04-21 12:30:17
источник

Как было сказано ранее GeneQ, это, как вы действуете (я проверил его)

  1. Откройте командную строку с правами администратора
  2. использовать команду:

для /F "delims=;" %а ('реж C:\FontsDir /б /д-д-ч-С /С') не fontview %a

где C:\FontsDir это каталог, в котором хранятся файлы tff. После выполнения "fontview" окна будут открыты столько, сколько количество tff файлов внутри " FontsDir" справочник. Вы должны просто нажать на кнопку" Установить", и вот вы! в вашей системе установлены шрифты

надеюсь, это поможет кому-то

0
отвечен Sam Doxy 2016-01-07 13:35:49
источник

вы не указали свою версию Windows, но я предполагаю, что вы используете Vista или 7. Для копирования в этот каталог требуются права администратора. Попробуй еще раз, но использовать командную строку instad на этот раз.

-1
отвечен jsejcksn 2010-12-22 00:09:54
источник

Я потратил много времени, чтобы найти способ для установки шрифта без перезагрузки. Наконец я нашел это:ClickFont. Это простое и точное решение.

ClickFont позволяет легко устанавливать шрифты TrueType, OpenType и PostScript всего двумя щелчками мыши из любой точки системы. Все, что нужно, это щелкнуть правой кнопкой мыши по шрифту или папке.

-1
отвечен SelçukDERE 2016-10-04 19:40:13
источник

Другие вопросы windows command-line fonts installation

X