Powershell csv 配列 格納

2021-8-17 - 読み終える時間: 2 分

いかんせん説明下手なので申し訳ないが、今回はPowershellでCSVから読み込んだデータについて説明しよう。

import-csv

コマンドレットImport-Csvは文字通りCSVファイルを読み込む際に使う。コマンドオプションなどはヘルプを見て欲しい。

ちなみにコマンドレットの簡易ヘルプはImport-Csv -?で確認できるはず。

読み込ませるCSVにはある程度規則がある。

1行目はヘッダー(インデックス)として使用される。いきなり実データを記載してはいけない。

仮に以下のようなCSVがあるとしよう。

sample.csv

c1,c2,c3
"1行目のc1","1行目のc2","1行目のc3"
"2行目のc1","2行目のc2","2行目のc3"
"3行目のc1","3行目のc2","3行目のc3"

このようなCSVをImport-Csvで読み込んだ場合、以下のように展開することができる。

読み込み:$array_csv = Import-Csv -Path $filepath -Encoding oem -Delimiter ","

  1. 1行目
    1. $array_csv.c1
      1. 変数名の後ろに ドット+インデックス名 を付与することで各行の値を取り出せる(インデックス名はプロパティであるともとれる)
  2. 2行目
    1. $array_csv.c1="1行目のc1" である
    2. これは$array_csv[0].c1="1行目のc1"こう書いた場合と同じである
  3. 3行目
    1. $array_csv[1].c1="2行目のc1" である

基本的には以上。

より詳しいことはMicrosoftのドキュメントを参照してほしい。

参考:Import-Csv (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Docs

参考:配列について知りたかったことのすべて - PowerShell


今日はここまで



PowershellでCSVを読み込んで配列に入れたいんだけどさ

2021-1-9 - 読み終える時間: 2 分

やってみると難しい

何がしたいかっていうと、AWS EC2で使うボリューム情報をCSVに書いておいて、サイズやデバイス名ごとに配列に入れたいのです。

個人的に今回肝だったのが New-Object System.Collections.ArrayList これと if ( $_ -like "" )

もっと読む