PowerShell导入CSV的Name列时如何去除@{Name=}异常格式
问题原因
Import-Csv 导入后返回的是自定义对象数组,每个元素对应CSV里的一行数据,对象的属性对应CSV的列名,你直接打印整个对象时,PowerShell会输出对象的格式化字符串,所以会出现@{Name=xxx}的格式。
解决方法
方案1:修改现有foreach循环
直接访问对象的Name属性即可获取纯名称值,代码如下:
$Name = Import-Csv C:\Users\example\documents\testObjects.csv foreach ($s in $Name) { Write-Host $s.Name }
如果你的输出里还带有示例中出现的多余尾部逗号,可再加一步去逗号处理:
Write-Host $s.Name.Trim(',')
方案2:无需循环,直接提取所有Name属性值
用Select-Object的ExpandProperty参数直接展开属性,一行代码就能得到所有干净的纯字符串格式名称:
Import-Csv C:\Users\example\documents\testObjects.csv | Select-Object -ExpandProperty Name
内容的提问来源于stack exchange,提问作者Melon Man
相关产品推荐
相关产品推荐

