Powershell v2.0 と v3.0 の両方で実行する必要があるスクリプトがあります。csv ファイルをインポートし、最初の行からのみ特定の値を読み取ります。csv ファイルには、1 行または複数行の値を含めることができます。
$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 はデータを表示しません。
ここで何かを見逃しています。それに対処するエレガントな方法があるはずです。