我有一个脚本需要在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之间的行为的区别
$file_data
。但是当你在csv中有多行时,Powershell v2.0可以正常工作。但是如果我删除索引并仅使用$ file_data。$ col5,当csv有多行时,Powershell v2.0将不会显示任何数据。
我错过了这里的一些东西。应该有一种优雅的方式来处理它。
为什么不用import-csv
表示法封装@()
cmdlet,它总是返回array
,在单个值的情况下,在V2和V3中有效?
$file_data = @(Import-csv -Path $file_name)