Bagaimana cara menginstal font dari prompt perintah Windows?

37

Apakah mungkin untuk menginstal font dari command prompt di Windows? Jika ya, apa perintahnya?

Saya mencoba copy [fontname].ttf C:\Windows\Fonts\dan mengatakan penyalinan sudah selesai, tetapi saya tidak dapat menemukan font tersebut di folder Font atau menemukan mereka di daftar font program apa pun sehingga tentu saja tidak berfungsi. (Meskipun saya adalah mampu menghapus kata font dari Font folder setelah itu)

Mussnoon
sumber

Jawaban:

31

Itu mungkin tetapi Anda harus menulis skrip shell Windows untuk melakukannya. Menyalin sendiri tidak akan menginstal font: Anda juga perlu mendaftarkan font, mis

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

Atau Anda dapat menggunakan baris kode berikut untuk memenuhi kebutuhan Anda; simpan sebagai file .vbs dan kemudian jalankan.

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

Contoh:

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

Namun alternatif lain adalah menginstal font "sementara", hanya untuk sesi pengguna saat ini. Idenya adalah menjalankan fontview.exeuntuk setiap font, yang membuatnya tersedia untuk aplikasi Windows lainnya:

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

Lihat solusi lengkapnya di sini .

GeneQ
sumber
Apakah Anda akan begitu baik hati untuk memperluas skrip Anda ke: (1) Secara otomatis menginstal semua *.ttfdan *.fonfont dari direktori saat ini (2) Gunakan Const FONTS = &H14&seperti yang disarankan di sini ( sevenforums.com/general-discussion/… ). Saya bukan raja di VBS :( Terima kasih sebelumnya.
dma_k
1
objFolderItem.InvokeVerb("Install")tidak bekerja pada Windows Server 2012 R2
Anthony Kong
@GeneQ: Yang copydan reg addtidak membuat font tercantum dalam program di Windows® 10.
user2284570
16

Dalam Powershell ini bisa sesederhana:

$fonts = (New-Object -ComObject Shell.Application).Namespace(0x14)
dir fonts/*.ttf | %{ $fonts.CopyHere($_.fullname) }
Guss
sumber
3
Saya akan mengubah baris kedua denganGet-ChildItem -Recurse -include *.ttf | % { $fonts.CopyHere($_.fullname) }
EvgeniySharapov
2
Memang, Get-ChildItemadalah cara Powershell, saya hanya membenci cara Powershell (Unix shell affectionado di sini), dan dirhanya alias untuk itu; dan jika Anda ingin rekursi, maka opsi yang Anda berikan adalah cara untuk melakukannya. Untuk sederhana "cukup pindai file dalam folder ini", versi saya kurang verbose dan lebih mudah dibaca.
Guss
5

Mirip dengan solusi GeneQ, berikut adalah versi yang melakukannya untuk semua file .ttf di direktori skrip:

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
sumber
Anda baru saja menyelamatkan hari saya :) Font Windows default saya rusak dan ini adalah satu-satunya cara saya dapat menginstal ulang semua font Windows Default. Terima kasih!!
Rima
sempurna! Saya menggunakan ini dalam vbs yang dijalankan oleh file kelelawar untuk sejumlah komputer setelah merek perusahaan. Ini menginstal font, menginstal file tanda tangan email untuk Outlook dan menetapkan halaman rumah browser
Reece
3

Anda juga dapat menggunakan utilitas FontReg untuk menginstal font dari prompt perintah.

afrazier
sumber
1
Ini tidak berhasil untuk saya di Windows 10 64bit.
Djangofan
1
@ Djangofan: Apakah Anda menggunakan command prompt yang ditinggikan? Saya belum mencoba fontreg pada Windows 10, tapi saya berharap itu diperlukan.
Afrazier
Masalahnya adalah saya mencoba menginstal font Mac di sistem saya (mereka tidak memiliki ekstensi nama file). Saya mendapat file font windows .ttf dan semuanya baik-baik saja sekarang.
Djangofan
1

Buat file skrip bernama InstallFonts.vbs dalam kasus saya, saya letakkan di C: \ PortableApps \ InstallFonts \ DALAM kode di bawah ini ganti "SomeUser" dengan nama pengguna orang yang Anda ingin dapat menginstal font. Kemudian buat folder "install Fonts" yang sesuai di desktop mereka.

    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

Sekarang buat pintasan di desktop mereka yaitu sebagai berikut ...

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

Perhatikan bahwa saya menggunakan "Administrator". Saya mengaktifkannya dan memberinya kata sandi. Saya kira Anda dapat menggunakan akun administrator apa pun untuk ini. Pertama kali Anda menjalankan pintasan Anda akan diminta kata sandi administrator .. setiap kali setelah itu hanya akan berfungsi.

Jika itu tidak meminta Anda untuk kata sandi, jalankan pintasan dari cmd prompt itu harus meminta Anda.

Saya tidak bisa menjanjikan Anda seberapa aman ini seolah-olah mereka bisa menggunakannya untuk menjalankan kode yang ditinggikan. Namun itu adalah solusi.

Desktop Master
sumber
0

Seperti yang dikatakan sebelumnya oleh GeneQ, ini adalah bagaimana Anda melanjutkan (saya sudah mengujinya)

  1. Buka baris perintah dengan hak administrator
  2. Gunakan perintah:

untuk / F "delims =;" % a in ('dir C: \ FontsDir / B / ADHS / S') lakukan fontview% a

Di mana C: \ FontsDir adalah direktori tempat file tff Anda disimpan. Setelah dieksekusi "fontview" windows akan dibuka sebanyak jumlah file tff di dalam direktori "FontsDir". Anda tinggal mengklik tombol "Instal" dan itu dia! font Anda diinstal pada sistem Anda

Semoga ini bisa membantu seseorang

Sam Doxy
sumber
mengapa forperintah yang kompleks bukannya (misalnya) for %a in (C:\FontsDir\*.*) do fontview "%a"?
Ale
Perintah ini juga menampilkan font tersembunyi
Sam Doxy
-1

Anda tidak mencantumkan versi Windows Anda, tetapi saya menganggap Anda menjalankan Vista atau 7. Menyalin ke direktori itu memerlukan hak administratif. Coba apa yang Anda lakukan lagi, tetapi gunakan instad Command Tinggikan kali ini.

jsejcksn
sumber
3
Dia mengatakan bahwa salinannya berhasil. Jika izin mencegahnya berhasil menyalin di sana, itu akan memberitahunya bahwa salinan gagal, jadi ini mungkin bukan masalahnya.
nhinkle
-1

Saya menghabiskan banyak waktu untuk menemukan cara untuk menginstal font tanpa restart. Akhirnya saya menemukan ini: ClickFont . Ini solusi yang mudah dan tepat.

ClickFont memungkinkan pemasangan font TrueType, OpenType, dan PostScript dengan mudah hanya dengan dua klik mouse, dari mana saja di sistem. Yang diperlukan hanyalah klik kanan pada font atau folder.

SelçukDERE
sumber