PowerShell导入CSV后无法获取单列数据的问题咨询
解决PowerShell导入CSV后无法获取单列的问题
排查与修复步骤
1. 先确认实际列名是否正确
有时候CSV表头可能藏着看不见的特殊字符(比如BOM、空格),导致你输入的BOKNR和实际属性名不匹配。执行下面的命令,列出所有可用的列名:
$csvImport | Get-Member -MemberType NoteProperty | Select-Object Name
看输出里有没有BOKNR,或者有没有类似 BOKNR(带前导空格)的名称。
2. 手动指定表头导入
如果表头确实有异常,直接自定义表头导入:
# 定义和CSV对应的表头 $customHeaders = 'BOKNR','BOKN','AFSN','AFSK','AFAS','BOKNR+','AFCB' # 导入时指定表头,跳过原文件的表头行 $csvImport = Import-CSV -Path "C:\Path\to\CSV.csv" -Delimiter ";" -Header $customHeaders | Select-Object -Skip 1
之后再用$csvImport.BOKNR就能正常获取列内容了。
3. 检查文件编码
如果CSV是UTF-8带BOM格式,可能会导致表头解析出错,试试指定编码导入:
$csvImport = Import-CSV -Path "C:\Path\to\CSV.csv" -Delimiter ";" -Encoding UTF8
要是是ANSI编码,换成-Encoding Default试试。
4. 临时用索引访问列
以上方法都没效果的话,可以用列的索引直接取内容:
# 取第一列(对应BOKNR)的内容 $csvImport | ForEach-Object { $_[0] }
内容的提问来源于stack exchange,提问作者cosmo_
相关产品推荐
相关产品推荐

