PowerShell 批量安装字体

在现代应用程序开发和设计中,合适的字体能够大大提升用户体验和界面美观度。为了方便地安装和管理字体,本文将介绍如何使用 PowerShell 脚本自动化安装字体。

1. 背景

在 Windows 操作系统中,字体通常存储在 C:\Windows\Fonts 目录中,用户可以通过安装新字体到系统中来使用。如果要一次安装大量新字体,手动安装可能会很繁琐,因此编写一个自动化脚本可以节省时间和精力。

2. 脚本功能

  • 从指定目录中递归查找字体文件(包括 .ttf.otf 文件)。
  • 将字体文件复制到系统字体目录。
  • 在注册表中注册新安装的字体,以便在系统中可以正确识别和使用。

3. 获取字体:

以安装 JetBrainsMono 字体为例,从JetBrains官网下载字体:https://www.jetbrains.com/lp/mono/
得到一个zip压缩包(JetBrainsMono-2.304.zip),里面大概包含30多个字体文件,解压到你的本地路径,如:D:\JetBrainsMono-2.304

在这里插入图片描述


3. PowerShell 脚本


以下是完整的脚本代码:
# 定义源文件夹,包含字体文件
$SourceFolder = "D:\JetBrainsMono-2.304"
# 定义注册表路径
$FontsRegistryPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts"

# 添加系统绘图的程序集
Add-Type -AssemblyName System.Drawing
# 创建一个新的私有字体集合
$WindowsFonts = [System.Drawing.Text.PrivateFontCollection]::new()

  
# 获取源文件夹中所有的 .ttf 和 .otf 字体文件,并递归查找
Get-ChildItem -Path $SourceFolder -Include *.ttf, *.otf -Recurse -File | ForEach-Object {
    # 将字体文件复制到系统字体文件夹中
    Copy-Item -Path $_.FullName -Destination "$env:SystemRoot\Fonts" -Force -Confirm:$false -PassThru
    # 输出当前正在安装的字体名称
    Write-Host "正在安装字体: $($_.Name)"
    # 将字体文件添加到私有字体集合中
    $WindowsFonts.AddFontFile($_.Fullname)
    # 添加字体的注册表值
    $FontFamilyName = $WindowsFonts.Families[-1].Name
    $RegistryValue = @{
        Path  = $FontsRegistryPath  # 字体注册表路径
        Name  = $FontFamilyName     # 字体名称
        Value = $_.Name             # 字体文件的名称
    }

    # 移除可能已存在的同名字体注册表项
    Remove-ItemProperty -Name $FontFamilyName -Path $FontsRegistryPath -ErrorAction SilentlyContinue

    # 添加新的注册表项以注册新安装的字体
    New-ItemProperty @RegistryValue
} | Out-Null
  • 修改的地方只有一处:将 $SourceFolder = 改成你的实际解压路径。

脚本执行截图:

在这里插入图片描述

4. 使用说明

  • 需要以 管理员权限 运行 ps1 脚本,否则可能没有权限修改系统字体目录和注册表。
  • 确保指定的 源文件夹路径字体文件类型 是正确的。

5. 结论

通过使用 PowerShell 脚本,你可以高效地自动化字体的安装过程,节省时间并减少手动操作中的错误。这样的脚本在进行大规模部署时尤为重要,尤其是在需要统一字体样式的环境中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值