Como faço para instalar uma fonte no prompt de comando do Windows?

34

É possível instalar fontes no prompt de comando do Windows? Se sim, qual é o comando?

Eu tentei copy [fontname].ttf C:\Windows\Fonts\ e ele disse que a cópia estava completa, mas não consegui encontrar as fontes mencionadas na pasta Fonts nem encontrá-las na lista de fontes de qualquer programa, o que certamente não funcionou. (Embora eu tenha sido capaz de apagar as referidas fontes da pasta Fonts depois)

    
por Mussnoon 21.10.2010 / 14:58

8 respostas

28

É possível, mas você precisa escrever um script de shell do Windows para fazer isso. Copiar sozinho não instala a fonte: você também precisa registrar a fonte, por exemplo,

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

Como alternativa, você pode usar as seguintes linhas de código para atender às suas necessidades; salve-o como um arquivo .vbs e, em seguida, execute-o.

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

Exemplo:

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

Ainda outra alternativa é instalar fontes "temporárias", apenas para a sessão atual do usuário. A idéia é executar fontview.exe para cada fonte, o que a torna disponível para outros aplicativos do Windows:

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

Veja a solução completa aqui .

    
por 21.10.2010 / 15:02
16

Em Powershell isto pode ser tão simples como:

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

Similar à solução do GeneQ, aqui está uma versão para todos os arquivos .ttf no diretório do script:

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
    
por 13.09.2011 / 20:00
3

Você também pode usar o utilitário FontReg para instalar fontes em um prompt de comando.

    
por 21.12.2010 / 21:44
1

Crie um arquivo de script chamado InstallFonts.vbs no meu caso eu coloquei em C: \ PortableApps \ InstallFonts \ No código abaixo, substitua "SomeUser" pelo nome de usuário da pessoa para a qual você deseja instalar as fontes. Em seguida, faça a pasta apropriada "instalar fontes" em sua área de trabalho.

    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

Agora, crie um atalho na área de trabalho da seguinte maneira ...

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

Note que usei "Administrador". Eu habilitei e atribui uma senha. Eu suponho que você poderia usar qualquer conta de administrador para isso. Na primeira vez que você executar o atalho, será solicitada a senha do administrador. Sempre que ele funcionar.

Se ele não solicitar uma senha, execute o atalho a partir de um prompt cmd, que deverá ser solicitado a você.

Não posso prometer a você como isso é seguro, se eles puderem usá-lo para executar códigos elevados. No entanto, é uma solução.

    
por 21.04.2015 / 11:30
0

Como dito anteriormente pelo GeneQ, é assim que você prossegue (testei)

  1. Abra uma linha de comando com privilégios de administrador
  2. Use o comando:

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

Onde C: \ FontsDir é o diretório onde seus arquivos tff são armazenados. Uma vez executadas, as janelas "fontview" serão abertas tanto quanto o número de arquivos tff dentro do diretório "FontsDir". Você só precisa clicar no botão "Instalar" e aí está você! suas fontes estão instaladas no seu sistema

Espero que isso ajude alguém

    
por 07.01.2016 / 11:26
-1

Você não listou sua versão do Windows, mas suponho que esteja executando o Vista ou o 7. Copiar para esse diretório requer privilégios administrativos. Tente o que você fez novamente, mas use um Prompt de Comando Elevado desta vez.

    
por 21.12.2010 / 22:09
-1

Passei muito tempo para encontrar uma maneira de instalar a fonte sem reiniciar. Finalmente encontrei isto: ClickFont . É uma solução fácil e exata.

ClickFont allows easy installation of TrueType, OpenType and PostScript fonts with just two mouse clicks, from anywhere in the system. All it takes is a right-click on a font or folder.

    
por 04.10.2016 / 18:05