PowerShell用ConvertFrom-Json遍历多JSON文件批量导出CSV的方法
解决方案
你可以用Get-ChildItem遍历指定目录下所有JSON文件,配合循环批量处理即可,修改后的完整脚本如下:
# 定义处理路径和输出路径 $jsonFolder = "C:\Temp" $outputCsv = "C:\Temp\items.csv" # 先删除已存在的输出文件,避免旧数据追加重复 if (Test-Path $outputCsv) { Remove-Item $outputCsv -Force } # 遍历目录下所有.json后缀的文件 Get-ChildItem -Path $jsonFolder -Filter "*.json" -File | ForEach-Object { # 读取并解析当前JSON文件 $jsonContent = Get-Content -Path $_.FullName -Raw | ConvertFrom-Json # 提取字段并追加到CSV $jsonContent | Select-Object ItemName, ItemID, ItemDate, ItemValue, @{Name = 'Tag 4'; Expression = {($_.ItemTags | Where-Object Name -eq "Tag 4").Value}} | Export-Csv -Path $outputCsv -NoTypeInformation -Append -Encoding UTF8 }
脚本优化说明
- 用
Get-ChildItem加-Filter "*.json"参数自动匹配目标目录下所有JSON格式文件,无需手动指定每个文件名,后续新增同格式文件也会自动纳入处理 - 开头增加旧输出文件删除逻辑,避免多次运行脚本时数据重复追加
- 增加
-Raw参数读取JSON文件,提升大文件解析效率,新增-Encoding UTF8参数保证CSV输出时中文等特殊字符不乱码 - 所有重复逻辑合并到循环中,后续如果要调整提取字段,只需要修改一处即可,维护成本更低
内容的提问来源于stack exchange,提问作者wd510
相关产品推荐
相关产品推荐

