Skip to main content
 首页 » 编程设计

带有标题到哈希表的 Powershell CSV

2025年12月25日44dudu

我有一个带有标题行的 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