前言
对于Windows系统来说,字体是一个非常重要的组件,影响着用户的阅读体验、文档排版、界面显示等。但是有时候我们想要更换某些字体文件,比如为了更好地适应某种语言文字或者美化界面等目的,这时用手动去替换系统中的字体文件十分繁琐,也容易出错。因此,编写一个自动化脚本来完成这个任务,既能提高效率,也能减少出错的概率。
本文讲解下,如何使用脚本实现Windows系统字体替换。
脚本实现
以msyh字体为例,替换成sarasa字体
1、备份字体
pushd msyh-backup
call:Warning "Backuping msys fonts..."
icacls c:\windows\Fonts\msyh* /save msyh-backup\acl /T
copy C:\Windows\Fonts\msyh* msyh-backup\
otc2otf msyh.ttc
otc2otf msyhl.ttc
otc2otf msyhbd.ttc
ttx -t name MicrosoftYaHei.ttf
ttx -t name MicrosoftYaHeiUI.ttf
ttx -t name MicrosoftYaHeiLight.ttf
ttx -t name MicrosoftYaHeiUILight.ttf
ttx -t name MicrosoftYaHei-Bold.ttf
ttx -t name MicrosoftYaHeiUI-Bold.ttf
del /q MicrosoftYaHei*.ttf 2>nul
popd
2、转换字体
pushd "%rootdir%\sarasa"
otc2otf sarasa-regular.ttc
otc2otf sarasa-light.ttc
otc2otf sarasa-bold.ttc
del /q MicrosoftYaHei*.ttf 2>nul
del /q MicrosoftYaHei*.otf 2>nul
ttx -b -d "%cd%" -m Sarasa-UI-SC-Regular.ttf ..\msyh-backup\MicrosoftYaHei.ttx
ttx -b -d "%cd%" -m Sarasa-UI-SC-Regular.ttf ..\msyh-backup\MicrosoftYaHeiUI.ttx
ttx -b -d "%cd%" -m Sarasa-UI-SC-Light.ttf ..\msyh-backup\MicrosoftYaHeiLight.ttx
ttx -b -d "%cd%" -m Sarasa-UI-SC-Light.ttf ..\msyh-backup\MicrosoftYaHeiUILight.ttx
ttx -b -d "%cd%" -m Sarasa-UI-SC-Bold.ttf ..\msyh-backup\MicrosoftYaHei-Bold.ttx
ttx -b -d "%cd%" -m Sarasa-UI-SC-Bold.ttf ..\msyh-backup\MicrosoftYaHeiUI-Bold.ttx
otf2otc MicrosoftYaHei.ttf MicrosoftYaHeiUI.ttf -o msyh.ttc
otf2otc MicrosoftYaHeiLight.ttf MicrosoftYaHeiUILight.ttf -o msyhl.ttc
otf2otc MicrosoftYaHei-Bold.ttf MicrosoftYaHeiUI-Bold.ttf -o msyhbd.ttc
del /q Sarasa*.ttf 2>nul
del /q MicrosoftYaHei*.ttf 2>nul
popd
3、删除注册表中的msyh
pushd "%rootdir%\sarasa"
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "Microsoft Yahei & Microsoft Yahei UI (TrueType)" /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "Microsoft Yahei Bold & Microsoft Yahei UI Bold (TrueType)" /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "Microsoft Yahei Light & Microsoft Yahei UI Light (TrueType)" /f
popd
进行下步替换之前,需要先重启Windows系统
4、开始替换,并添加新字体到注册表中
pushd "%rootdir%\sarasa"
takeown /F C:\Windows\Fonts\msyh* /A
icacls C:\Windows\Fonts\msyh* /grant Administrators:F
del /f /s /q C:\Windows\Fonts\msyh*
if exist C:\Windows\Fonts\msyh* echo Delete fonts failed!&goto:End
copy "msyh*" C:\Windows\Fonts
takeown /F C:\Windows\Fonts\msyh* /A
icacls C:\Windows\Fonts\msyh* /grant Administrators:F
icacls C:\windows\Fonts\msyh* /C /setowner "NT SERVICE\TrustedInstaller"
icacls C:\windows\Fonts\ /C /restore "..\msyh-backup\acl"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "Microsoft Yahei & Microsoft Yahei UI (TrueType)" /t REG_SZ /d "msyh.ttc" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "Microsoft Yahei Bold & Microsoft Yahei UI Bold (TrueType)" /t REG_SZ /d "msyhbd.ttc" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "Microsoft Yahei Light & Microsoft Yahei UI Light (TrueType)" /t REG_SZ /d "msyhl.ttc" /f
popd
以上就是替换字体的整个流程,整个实现代码和恢复字体脚本,在文章最后的下载地址中。
完毕!!!
脚本下载地址:windows系统字体替换脚本