MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/19 おすすめ情報に 『 【資格取得者速報】 Aさん 「 Microsoft Security, Compliance, and Identity Fundamentals」 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


【PowerShell】Export-CsvでのCSV出力について小話
profile-img
投稿者: muto-sanさん
投稿日:2019/10/01 13:59
更新日:2019/10/01 17:22
like-img
分類
技術
テクノロジー
Windows系サーバ
キャリア
運用・保守 / テクニカルサポート / 構築
投稿内容
オブジェクトをCSV化して出力するExport-Csvコマンドは情報の一覧を取得する際によく利用されます。
1行に1項目という形式になるためExcelでの編集が必要な場合などに有用です。
ただし、CSVは性質上階層構造を持たず配列を含むプロパティを出力した際にそのままではうまく表示されません。
例えば、ネットワーク設定を取得するGet-NetIPConfigurationをExport-Csvし、Excelで取り込むと一部のプロパティが下記のように表示されます。




これは[IPv4Address]プロパティが配列のためにおこる事象です。
展開してCSV化するためにはSelect-Objectコマンドを使います。


Selectするプロパティを波括弧({})で囲んでパイプした変数($_)から配列プロパティを指定してやることで展開した値をCSV出力することができます。


また、新しいNameを持つプロパティとすることも可能です。


ここでは、@{}でハッシュテーブルを作り、NameとExpressionで名前と値を定義しています。

Export-CliXmlやConvertTo-Jsonを用いれば階層構造を含めてExportでき再利用も容易ではありますが、どうしてもCSV形式でのデータが必要な場合はSelect-Objectによるオブジェクト操作で必要な形式に作り替えてやりましょう。

コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3