Bir yazı tipini Windows komut isteminden nasıl yüklerim?


37

Yazı tiplerini Windows'taki komut isteminden yüklemek mümkün mü? Eğer evet ise, komut nedir?

Denedim copy [fontname].ttf C:\Windows\Fonts\ve kopyalamanın tamamlandığını söyledi, ancak Fonts klasöründe adı geçen yazı tiplerini bulamadım ya da kesinlikle çalışmaması için herhangi bir programın yazı tipi listesinde bulamadım. (I rağmen oldu silebilir Fonts'tan yazı sonradan klasörü söyledi)


Yanıtlar:


31

Mümkün, ancak bunun için bir Windows kabuk betiği yazmanız gerekiyor. Yalnız kopyalamak fontu yüklemez: ayrıca fontu kaydetmeniz gerekir, örn.

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

Alternatif olarak ihtiyaçlarınızı karşılamak için aşağıdaki kod satırlarını da kullanabilirsiniz; Bir .vbs dosyası olarak kaydedin ve sonra yürütün.

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

Örnek:

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

Diğer bir alternatif, sadece geçerli kullanıcı oturumu için "geçici" yazı tiplerini yüklemektir. Fikir, fontview.exediğer Windows uygulamaları için kullanılabilir kılan her yazı tipi için çalıştırılmasıdır :

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

Burada tam çözüme bakın .


Komut dosyanızı aşağıdakilere genişletecek kadar kibar olur musunuz: (1) Tüm *.ttfve *.fonfontları geçerli dizinden otomatik olarak yükle (2) Const FONTS = &H14&Burada önerildiği şekilde kullanın ( sevenforums.com/general-discussion/… ). Ben VBS kralı değilim :( Şimdiden teşekkürler.
dma_k

1
objFolderItem.InvokeVerb("Install")2012 R2, Windows Server çalışmıyor
Anthony Kong

@GeneQ: Windows® 10'daki programlarda listelenen yazı tipini yapar copyve reg addyapmaz.
user2284570

16

Powershell'de bu şu kadar basit olabilir:

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

3
İkinci çizgiyi değiştiririmGet-ChildItem -Recurse -include *.ttf | % { $fonts.CopyHere($_.fullname) }
EvgeniySharapov

2
Verilmiş, Get-ChildItemPowershell yolu, sadece Powershell yolundan nefret ediyorum (burada Unix kabuk sevgisi) ve dirbunun için sadece bir takma ad; ve özyineleme yapmak istiyorsan, sağladığın seçenekler gitmenin yoludur. Basitçe "sadece bu klasördeki dosyaları tara" için, sürümüm daha az ayrıntılı ve daha okunaklı.
Guss

5

GeneQ'nun çözümüne benzer şekilde, komut dosyasının dizinindeki tüm .ttf dosyaları için bunu yapan bir sürüm:

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

Az önce günümü kurtardın :) Varsayılan Windows yazı tipim bozuldu ve bu, tüm Windows Varsayılan yazı tiplerini yeniden yükleyebilmemin tek yoluydu. Teşekkürler!!
Rima

mükemmel! Bir şirketin yeniden markalanmasından sonra birkaç bilgisayar için bir yarasa dosyası tarafından çalıştırılan bir vbs kullandım. Yazı tiplerini yükler, Outlook için e-posta imza dosyalarını yükler ve tarayıcının ana sayfasını ayarlar
Reece

3

FontReg komutunu komut isteminden yüklemek için FontReg yardımcı programını da kullanabilirsiniz .


1
Bu benim için Windows 10 64bit'te işe yaramadı.
djangofan

1
@djangofan: Yükseltilmiş bir komut istemi kullandınız mı? Fontreg'yi henüz Windows 10'da denemedim, ancak bunun olmasını beklerdim.
afrazier

Sorun, sistemime Mac fontları yüklemeye çalışıyordum (dosya adı uzantılarına sahip değillerdi). Windows .ttf font dosyalarını aldım ve hepsi iyi.
djangofan

1

Benim durumumda InstallFonts.vbs adlı bir komut dosyası oluşturun. C: \ PortableApps \ InstallFonts \ koydum, aşağıdaki kod yazı tiplerini yüklemek istediğiniz kişinin kullanıcı adının yerine "SomeUser" yazıyor. Sonra masaüstünde uygun "Install Fonts" klasörünü hazırlayın.

    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

Şimdi masaüstünde aşağıdaki gibi bir kısayol oluşturun ...

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

"Yönetici" kullandığımı unutmayın. Etkinleştirdim ve bir şifre belirledim. Sanırım bunun için herhangi bir yönetici hesabını kullanabilirsiniz. Kısayolu ilk kez çalıştırdığınızda, yönetici şifresi istenir.

Eğer sizden bir şifre sormazsa bir cmd komut isteminden kısayolu çalıştırın.

Bunun, yükseltilmiş kod çalıştırmak için kullanabildikleri kadar güvenli olduğuna söz veremem. Ancak bu bir çözümdür.


0

GeneQ tarafından daha önce de belirtildiği gibi, böyle devam edersiniz (test ettim)

  1. Yönetici ayrıcalıklarına sahip bir komut satırı açın
  2. Komutu kullanın:

/ F için "delims =;" % a in ('dir C: \ FontsDir / B / ADHS / S') fontview% a yapın

C: \ FontsDir, tff dosyalarınızın depolandığı dizindir. Bir kez "fontview" çalıştırıldığında pencereler "FontsDir" dizini içindeki tff dosyalarının sayısı kadar açılacaktır. Sadece "Yükle" butonuna tıklamanız yeterlidir! yazı tipleriniz sisteminizde yüklü

Umarım birine yardım eder


Neden böyle karmaşık bir forkomut (örneğin) for %a in (C:\FontsDir\*.*) do fontview "%a"?
Ale

Komut ayrıca gizli yazı tiplerini de gösterir
Sam Doxy

-1

Windows sürümünüzü listelemediniz, ancak Vista veya 7 kullandığınızı varsayıyorum. Bu dizine kopyalamak için yönetici ayrıcalıkları gerekir. Ne yaptığını tekrar dene, ama bu sefer Yüksek Komut İstemi'ni kullan.


3
Kopyanın başarılı olduğunu söyledi. Eğer izinler orada başarılı bir şekilde kopyalanmasını engelliyorsa, ona kopyanın başarısız olduğunu söyleyecekti, bu yüzden muhtemelen sorun bu değildi.
nhinkle

-1

Yazı tipini yeniden başlatmadan yüklemek için bir yol bulmak için çok zaman harcadım. Sonunda şunu buldum: ClickFont . Bu kolay ve kesin bir çözüm.

ClickFont, TrueType, OpenType ve PostScript yazı tiplerini, sistemin herhangi bir yerinden yalnızca iki fare tıklamasıyla kolayca kurmanıza olanak sağlar. Tek gereken bir font veya klasöre sağ tıklamak.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.