【发布时间】:2018-06-18 01:40:28
【问题描述】:
我有一个 CSV,其中包含一个用户名,然后是记录其余部分的一个或多个值。文件中没有标题。
joe.user,Accounting-SG,CustomerService-SG,MidwestRegion-SG
frank.user,Accounting-SG,EastRegion-SG
我想将文件读入一个 powershell 对象,其中 Username 属性设置为第一列,而 Membership 属性设置为行的其余部分(包括逗号),或者理想情况下是字符串数组每个元素都包含一个成员值。
很遗憾,以下行仅获取第一个成员资格并忽略该行的其余部分。
$memberships = Import-Csv -Path C:\temp\values.csv -Header "username", "membership"
@{username=joe.user; membership=Accounting-SG}
@{username=frank.user; membership=Accounting-SG}
我正在寻找以下任一输出:
@{username=joe.user; membership=Accounting-SG,CustomerService-SG,MidwestRegion-SG}
@{username=frank.user; membership=Accounting-SG,EastRegion-SG}
或
@{username=joe.user; membership=string[]}
@{username=frank.user; membership=string[]}
我已经能够通过将 csv 文件中数据的“其余部分”用引号括起来来获得第一个结果,但这并不是最好的答案:
joe.user,"Accounting-SG,CustomerService-SG,MidwestRegion-SG"
【问题讨论】:
-
我也知道我可以用不同的分隔符分隔成员资格值,并在从 csv 读取数据后对其进行解析,但如果可以的话,我想避免这种情况。
-
您不必使用 Import-Csv。您始终可以使用 Get-Content,并一次处理每一行。
标签: powershell import-csv