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

PowerShell导出显示器CSV数据格式问题:需规范列对齐并追加记录

解决PowerShell导出显示器信息到CSV的格式与追加问题

核心问题分析

  1. 手动拼接CSV字符串易因内容含特殊字符(如逗号)导致Excel列错位,且Out-File的编码可能让Excel无法正确识别分隔符
  2. 原脚本每次执行都会重复写入表头,导致追加记录时出现冗余表头

修改后的脚本

$Monitors = Get-WmiObject WmiMonitorID -Namespace root\wmi
$LogFile = "d:\monitors.csv"

# 转换显示器信息为结构化对象
$monitorData = foreach ($Monitor in $Monitors) {
    [PSCustomObject]@{
        Manufacturer = ($Monitor.ManufacturerName | Where-Object { $_ -ne 0 } | ForEach-Object { [char]$_ }) -join ""
        Name         = ($Monitor.UserFriendlyName | Where-Object { $_ -ne 0 } | ForEach-Object { [char]$_ }) -join ""
        Serial       = ($Monitor.SerialNumberID | Where-Object { $_ -ne 0 } | ForEach-Object { [char]$_ }) -join ""
    }
}

# 实现首次写入表头、后续追加记录的逻辑
if (-not (Test-Path $LogFile)) {
    $monitorData | Export-Csv -Path $LogFile -NoTypeInformation -Encoding UTF8
} else {
    $monitorData | Export-Csv -Path $LogFile -NoTypeInformation -Encoding UTF8 -Append
}

关键改进点

  • 用[PSCustomObject]结构化数据,配合Export-Csv自动生成规范CSV,避免手动拼接的格式错误
  • 指定-Encoding UTF8确保Excel能正确识别文件编码,避免乱码或分隔符识别失败
  • 通过Test-Path判断文件是否存在,实现首次运行写表头、后续仅追加新记录的逻辑
  • Export-Csv会自动处理内容中的特殊字符(如逗号),用引号包裹字段,保证列对齐

Excel规范显示操作提示

如果直接打开CSV仍列不对齐,可通过Excel数据导入功能操作:

  1. 打开Excel,点击「数据」选项卡 → 「自文本/CSV」
  2. 选择目标CSV文件,在导入向导中指定「逗号」为分隔符
  3. 完成导入后,数据会自动按列对齐显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 08:16:02