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

PowerShell实现CSV指定列非空值替换为Yes及列名空格处理

解决CSV列替换问题的PowerShell修正方案

修正后的完整代码

Import-Csv -Path ".\test.csv" | ForEach-Object {
    # 处理"Letter Grade"列:非空/非全空白值替换为"Yes"
    if (-not [string]::IsNullOrWhiteSpace($_."Letter Grade")) {
        $_."Letter Grade" = "Yes"
    }
    # 处理"Numeric Grade"列:非空/非全空白值替换为"Yes"
    if (-not [string]::IsNullOrWhiteSpace($_."Numeric Grade")) {
        $_."Numeric Grade" = "Yes"
    }
    $_
} | Export-Csv .\poop2.csv -Encoding UTF8 -NoTypeInformation

问题解决细节

1. 带空格列名的正确访问方式

PowerShell中访问包含空格的CSV列属性,直接用双引号包裹列名即可,格式为$_."列名",比如$_."Letter Grade"。这种方式能直接定位到目标列,替代你之前错误的引号/大括号用法。

2. 非空值的准确判断

放弃用正则.+匹配非空值,改用.NET的[string]::IsNullOrWhiteSpace()方法:

  • .+仅匹配至少一个可见字符,无法处理单元格为全空白(如多个空格)的情况;
  • 该方法会同时判断字符串是否为null、空字符串,或仅包含空白字符,完美覆盖你需要的"非空"判定场景。

原数据示例

Letter GradeNumeric Grade
A
10
C5

期望处理后的数据

Letter GradeNumeric Grade
Yes
Yes
YesYes

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:35:35