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

PowerShell检查CSV指定列是否为空并替换为其他列值

代码问题排查与修复

原代码错误点

  • 变量名不匹配:遍历变量定义为$item,赋值时错误调用未声明的$line变量,取值失败
  • 逻辑冗余:无需额外定义哈希表存储数据,Import-Csv返回的对象集合可直接修改属性
  • 导出参数错误:输入文件为逗号分隔,导出时误将分隔符设为分号;,导致输出格式不符

修复后代码

$csvFile1 = Import-Csv -Path "D:\AA_servers.txt" -Delimiter ","
foreach ($item in $csvFile1) {
    if ([string]::IsNullOrEmpty($item.Header2)) {
        $item.Header2 = $item.Header3
    }
} 
$csvFile1 | Export-Csv -Path "D:\AA_servers.txt" -Delimiter "," -NoTypeInformation -Encoding UTF8

效果说明

运行后会自动识别Header2为空的行,将对应行Header3的值写入Header2,其余行保持不变,完全符合预期输出要求。如果Header2为空同时Header3也为空,赋值后仍保持为空,和示例中ASD行的处理逻辑一致。
如果需要去掉输入文件末尾多余逗号产生的空列,可将导出语句修改为:

$csvFile1 | Select-Object Header1,Header2,Header3 | Export-Csv -Path "D:\AA_servers.txt" -Delimiter "," -NoTypeInformation -Encoding UTF8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:24:02