2012-10-18 476 views
3

任何人都知道如何通過命令提示符在Windows上安裝字體文件(.ttf,.TTF,.otf,.OTF等等)?Windows:從cmd/.bat文件安裝字體

據我瞭解,它需要將文本文件移動到正確的文件夾,然後還創建一個註冊表值我想?但我還沒有找到一個確認工作的人。

備註:我使用的是Windows 8,因此可能會有所不同。

另一個說明:我想要做的是批量安裝我從MKV文件中擷取的字體。 (所以這將是一個功能,是一個更大的.bat文件的一部分,我可以張貼代碼,如果需要的話)

+0

有沒有辦法做到這一點wuthout第三方工具(至少一個額外的DLL/EXE文件)。雖然您可以通過文件複製和修改註冊表來手動添加字體,但系統仍不會意識到新字體,並且需要重新啓動系統。 – Jay

回答

1

您是否嘗試將它們複製到字體的文件夾?

copy font.ttf %windir%\Fonts 
5

您需要使用PowerShell或VB腳本。他們基本上重複使用在Windows資源管理器中執行相同操作的外殼組件,並且它們不需要重新啓動。

看到這裏的一個PowerShell腳本,安裝所有的字體從目錄: http://social.technet.microsoft.com/Forums/fr-FR/winserverpowershell/thread/fcc98ba5-6ce4-466b-a927-bb2cc3851b59

此外,你需要運行管理模式的腳本。因此,如果PowerShell腳本是InstallFonts.ps1,您的批處理文件需要看起來像:

powershell -command "Set-ExecutionPolicy Unrestricted" 2>> err.out 
powershell .\InstallFonts.ps1 2>> err.out 

任何PowerShell的錯誤都將出現在「err.out」在同一文件夾中的腳本。

1

也許這需要太:

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

當安裝的字體它是所有的.TTF文件複製到%systemroot%\fontsHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts添加一個條目。

REGEDIT4 

\[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts\] 

"Akbar Plain (TrueType)"="akbar.ttf" 

來源:這可以用一個批處理文件如下

Rem fontinst.bat 

copy akbar.ttf %systemroot%\fonts 

regedit /s font.reg 

的font.reg將包含以下自動化m.windowsitpro.com

0

批處理文件樣本,它的工作原理在當前目錄中。

IF "%*" NEQ "" SET FONT=%* (
 

 
FOR /F %%i in ('dir /b "%FONT%*.*tf"') DO CALL :DEST %%i 
 

 
) else (
 

 
EXIT 
 

 
) 
 

 
:DEST 
 

 
SET FONTFILE=%~n1%~x1 
 
SET FONTNAME=%~n1 
 

 

 
IF "%~x1"==".ttf" SET FONTTYPE=TrueType 
 
IF "%~x1"==".otf" SET FONTTYPE=OpenType 
 
    
 
ECHO FILE = %FONTFILE% 
 
ECHO NAME = %FONTNAME:-= % 
 
ECHO TYPE = %FONTTYPE% 
 

 
fontview %~dp0%FONTFILE% 
 
    
 

 
GOTO :EXIT