我有一个带有标题行的 csv 文件,我想将其转换为哈希表。
例如,这是我的输入:
#Version1.0
#Fields:ID,Data
1,data1
2,data2
3,data3
我希望输出是一个哈希表,其中 Key=ID 和 Value=Data。
这就是我所拥有的,但结果并不是我想要的。
$mytable = Import-Csv -Path $filePath -Header ID,Data
$HashTable=@{}
foreach($r in $mytable)
{
$HashTable[$r.ID]=$r.Data
}
这会创建我的表,但是当我稍后通过
$str = $Hashtable |外串
写主机 $str
我得到以下信息:
Name Value
-------- -----------
#Fields:ID Data
1 data1
2 data2
3 data3
如何摆脱写入哈希表的标题?有没有比坚持更优雅的解决方案 if ($r.ID.StartsWith("#")) { continue; }?
谢谢!
-C
请您参考如下方法:
Import-Csv 中的默认行为是使用第一行(未注释)作为标题。不要在命令中定义标题,而是从标题行中删除“#Fields:”。
#Version1.0
ID,Data
1,data1
2,data2
3,data3
然后你可以像这样创建哈希表:
$mytable = Import-Csv -Path $filePath
$HashTable=@{}
foreach($r in $mytable)
{
$HashTable[$r.ID]=$r.Data
}
返回:
Name Value
---- -----
2 data2
1 data1
3 data3


