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
相关产品推荐
相关产品推荐

