我有一个脚本需要在 Powershell v2.0 和 v3.0 上运行它导入一个 csv 文件并仅从第一行读取特定值。csv 文件可以有单行值或多个值。
$file_data = Import-csv -Path $file_name
$col5 = "ColumnName"
...
然后$file_data[0].$col5
在一些语句中使用
这是Import-csv
Powershell v2.0 和 v3.0 之间的行为差异
在 Powershell v2.0 上,当 csv 文件中有单行时,Import-csv 返回一个非数组 PSObject 对象。所以,上面的行会抛出一个错误 "CannotIndex"
$file_data
。但是当你在 csv 中有多行时,Powershell v2.0 可以正常工作。在 Powershell v3.0 上,Import-csv 总是返回一个数组,所以索引不是问题。
但是,如果我删除索引并仅使用 $file_data.$col5,则当 csv 具有多行时,Powershell v2.0 将不会显示任何数据。
我在这里错过了一些东西。应该有一种优雅的方式来处理它。