私はPowerShellのからCSVファイルを読み込むとします(一般的に)文字列から任意のデータ型にインポート、CSV結果を変換する
$data = Import-Csv "myfilename.csv"
CSVファイルは、文字列と数字を含めることができますが、PowerShellはとしてメモリに格納します文字列:
PS D:\> $data[0].Col3.GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object
インポート後、文字列から型を変換できると便利です。 1つまたは2つの列がある場合、私は次のように計算されたプロパティを使用して、それらを変換することができます
$data = Import-Csv "myfilename.csv" |
select -Property @{n='Col2';e={[int]$_.Col2}},
@{n='Col3';e={[double]$_.Col3}}
しかし、私は事前にカラム名を知っていると型を意図していないと仮定します。スキーマによって決定される
$Schema = @{Col1=[string];Col2=[int];Col3=[double]}
がどのように私はタイプにインポート、CSVからの出力を変換することができます:代わりに私は、任意の「スキーマ」とは、例えば、どのタイプであるべき列私に告げるがありますか? (好ましくは、効率的な/エレガントな方法で)
サンプルCSVファイル
"Col1","Col2","Col3" "a",2,4.3 "b",5,7.9
この質問は以前投稿したものと大きく異なります(後で削除しました) –