You need to enable JavaScript to run this app. 如何让PowerShell的Import-Csv正确导入空格字符而非转为空字符串
优惠活动
大模型
产品
解决方案
定价
更多

如何让PowerShell的Import-Csv正确导入空格字符而非转为空字符串

解决Import-Csv自动将空格单元格转换为空字符串的方法

方案1:PowerShell 7.0及以上版本

PowerShell 7.0开始为Import-Csv新增了-NoTrim参数,关闭默认的字段空白修剪行为,直接使用即可保留单元格内的原始空格:

$MyCSV = Import-Csv -Path "C:\MyCSV.csv" -NoTrim

执行后验证:
$MyCSV.Header1 -eq " " 会返回True,$MyCSV.Header1 -eq ""会返回False,符合业务需求。

方案2:兼容Windows PowerShell 5.1版本

Windows PowerShell 5.1没有-NoTrim参数,可以借助.NET的TextFieldParser类实现空格保留,核心配置为关闭空白修剪开关:

# 加载依赖程序集
Add-Type -AssemblyName Microsoft.VisualBasic
# 初始化CSV解析器
$parser = New-Object Microsoft.VisualBasic.FileIO.TextFieldParser("C:\MyCSV.csv")
$parser.SetDelimiters(",")
# 关闭字段空白修剪,保留原始内容
$parser.TrimWhiteSpace = $false
# 读取表头
$headers = $parser.ReadFields()
# 逐行解析生成CSV对象
$MyCSV = while (!$parser.EndOfData) {
    $fields = $parser.ReadFields()
    $row = [ordered]@{}
    for ($i = 0; $i -lt $headers.Count; $i++) {
        $row[$headers[$i]] = $fields[$i]
    }
    [PSCustomObject]$row
}
# 释放解析器资源
$parser.Close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 09:45:05