You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Font Awesome 5升6:Angular项目图标关键词替换PowerShell脚本需求

解决Font Awesome 5→6图标关键词批量替换问题

前提准备

确保你的CSV文件格式正确,需包含两列,表头为OldIcon和NewIcon,示例内容如下:

OldIcon,NewIcon
fa-camera,fa-camera-alt
fa-lock,fa-lock-keyhole
fa-arrow-right,fa-arrow-right-long

可行的PowerShell脚本

以下脚本会递归遍历指定目录下的所有.html文件,根据CSV列表批量替换旧图标关键词,且会先输出替换预览(避免误改),确认后再执行实际替换:

# 1. 配置路径
$csvPath = "C:\path\to\your\icon-mapping.csv"
$targetDir = "C:\path\to\your\angular-project\src"

# 2. 读取CSV映射表
$iconMappings = Import-Csv -Path $csvPath

# 3. 遍历所有HTML文件(递归)
Get-ChildItem -Path $targetDir -Filter "*.html" -Recurse | ForEach-Object {
    $filePath = $_.FullName
    $content = Get-Content -Path $filePath -Raw -Encoding UTF8

    # 4. 遍历每个图标映射,执行替换(使用正则边界匹配避免部分替换)
    foreach ($mapping in $iconMappings) {
        $oldPattern = "\b$([regex]::Escape($mapping.OldIcon))\b"
        $newIcon = $mapping.NewIcon
        $content = $content -replace $oldPattern, $newIcon
    }

    # 5. 先预览替换结果(可选,确认无误后注释掉这行,启用下一行写入)
    Write-Host "预览文件:$filePath`n替换后内容预览:`n$content`n---`n"
    # Set-Content -Path $filePath -Value $content -Encoding UTF8
}

关键注意事项

  • 正则边界匹配:使用\b配合[regex]::Escape(),确保只替换完整的图标类名,避免误改包含旧关键词的其他字符串。
  • 编码问题:指定-Encoding UTF8,防止Angular项目HTML文件出现乱码。
  • 测试优先:先运行带预览的版本,确认替换逻辑正确后,再取消注释Set-Content行执行实际替换。
  • 特殊字符兼容:[regex]::Escape()会自动处理CSV中可能存在的正则特殊字符(如.、+),避免替换规则失效。

内容的提问来源于stack exchange,提问作者RoastInHell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 07:08:10