You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用PowerShell从文本文件提取指定字符串并写入Excel表格

使用PowerShell提取本地化文本并导出到Excel的解决方案

当然可以!我来给你一套实用的PowerShell方案,帮你快速提取这些GlobalizationUtil.GetText()调用里的键值,并导出到Excel表格中。

第一步:准备依赖模块

PowerShell本身没有内置的Excel操作功能,我们需要先安装ImportExcel模块(这是社区维护的热门模块,处理Excel非常方便):

Install-Module -Name ImportExcel -Scope CurrentUser -Force

如果提示权限问题,可以右键以管理员身份运行PowerShell再执行这条命令。

第二步:编写完整的PowerShell脚本

把下面的脚本保存为ExtractLocalizationKeys.ps1,修改好你的输入文件路径和输出Excel路径即可运行:

# 1. 定义输入文件路径和输出Excel路径
$inputFilePath = "C:\Path\To\Your\InputFile.txt"  # 替换成你的文本文件路径
$outputExcelPath = "C:\Path\To\Your\LocalizationKeys.xlsx"  # 替换成你想要的输出Excel路径

# 2. 读取文本文件的全部内容
$fileContent = Get-Content -Path $inputFilePath -Raw

# 3. 使用正则表达式匹配所有GlobalizationUtil.GetText()调用
# 正则会匹配两种格式:GlobalizationUtil.GetText(GlobalizationKey.Xxx) 和 GlobalizationUtil.GetText("Xxx")
$regexPattern = '<%= GlobalizationUtil.GetText\((?:GlobalizationKey\.([^\)]+)|"([^"]+)")\) %>'
$matches = [regex]::Matches($fileContent, $regexPattern)

# 4. 整理匹配到的键值数据
$outputData = foreach ($match in $matches) {
    $keyValue = if ($match.Groups[1].Success) {
        # 处理GlobalizationKey.xxx格式的键
        "GlobalizationKey.$($match.Groups[1].Value)"
    } else {
        # 处理带引号的字符串键
        $match.Groups[2].Value
    }
    # 返回自定义对象,方便导出到Excel
    [PSCustomObject]@{
        LocalizationKey = $keyValue
    }
}

# 5. 将数据导出到Excel
$outputData | Export-Excel -Path $outputExcelPath -AutoSize -TableName "LocalizationKeys" -BoldTopRow

Write-Host "提取完成!结果已保存到: $outputExcelPath"

脚本说明

  • 正则表达式:专门针对你提供的两种格式做了匹配,不管是引用GlobalizationKey枚举的键,还是直接传入字符串的键,都能准确提取。
  • 数据整理:把提取到的键统一整理成结构化的对象,导出到Excel后会自动生成表头,格式更规整。
  • Excel导出Export-Excel命令会自动创建Excel文件,-AutoSize会自动调整列宽,-BoldTopRow会把表头加粗,可读性更好。

运行脚本

打开PowerShell,导航到脚本所在目录,执行:

.\ExtractLocalizationKeys.ps1

运行完成后,你就能在指定路径下看到包含所有本地化键的Excel文件了。

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

火山引擎 最新活动